Mensen,
ik worstel al een paar dagen met een stukje JSON dat ik ingelezen wil hebben.
Echter krijg ik niet de gewenste gegevens op mijn scherm.
Graag jullie hulp waar mijn denk fout zit of wat ik fout doe.
achtergrond
De JSON wordt vanuit een URL ingeladen.
In de JSON zit een blad indeling van allemaal vierkantjes met een eigen ID.
Het enige dat ik uit de JSON benodigd ben zijn de coördinaten van de vierkantjes en het ID hiervan.
gebruikte software
- vb.net
- jayrock-json (NuGet package)
Hieronder een stukje van de JSON
De output van bovnestaande stukje code in txtLog is:
Root: FeatureCollection
Count features: 0
VOLTOOID
Er worden dus 0 features gevonden terwijl er naar mijn idee toch echt meer in de JSON zitten.
Volgens de Jayrock documentatie worden JSON objecten {...} omgezet naar IDictionary en JSON arrays [...] naar IList.
Naar mijn idee heb ik dit ook zo verwerkt in de code, maar blijkbaar heb ik toch iets verkeerd begrepen.
Wie o wie kan mij op weg helpen.
ik worstel al een paar dagen met een stukje JSON dat ik ingelezen wil hebben.
Echter krijg ik niet de gewenste gegevens op mijn scherm.
Graag jullie hulp waar mijn denk fout zit of wat ik fout doe.
achtergrond
De JSON wordt vanuit een URL ingeladen.
In de JSON zit een blad indeling van allemaal vierkantjes met een eigen ID.
Het enige dat ik uit de JSON benodigd ben zijn de coördinaten van de vierkantjes en het ID hiervan.
gebruikte software
- vb.net
- jayrock-json (NuGet package)
Hieronder een stukje van de JSON
JSON:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
| { "type":"FeatureCollection", "features":[ { "type":"Feature", "id":293954, "geometry": { "type":"Polygon", "coordinates":[ [ [42000,360000], [44000,360000], [44000,362000], [42000,362000], [42000,360000] ] ] }, "properties": { "id":12821, "extractset":"fieldwork" } }, { "type":"Feature", "id":293953, "geometry": { "type":"Polygon", "coordinates":[ [ [42000,364000], [44000,364000], [44000,366000], [42000,366000], [42000,364000] ] ] }, "properties": { "id":12829, "extractset":"fieldwork" } } } |
Visual Basic .NET:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| Dim sJsonResponse As String = New WebClient().DownloadString("URL") Dim root As IDictionary = JsonConvert.Import(New StringReader(sJsonResponse)) Dim sType As String = root("type") txtLog.AppendText("Root: " & sType & vbCrLf) Dim features As IList = root("features") txtLog.AppendText("Count features: " & features.Count.ToString) For Each feature As IDictionary In features Dim sResult As String = feature("type") txtLog.AppendText("Features: " & sResult & vbCrLf) For Each geometry As IDictionary In feature("geometry") Dim sGeom As String = geometry("type") txtLog.AppendText("Geometry: " & sGeom & vbCrLf) Next Next txtLog.AppendText("VOLTOOID") |
De output van bovnestaande stukje code in txtLog is:
Root: FeatureCollection
Count features: 0
VOLTOOID
Er worden dus 0 features gevonden terwijl er naar mijn idee toch echt meer in de JSON zitten.
Volgens de Jayrock documentatie worden JSON objecten {...} omgezet naar IDictionary en JSON arrays [...] naar IList.
Naar mijn idee heb ik dit ook zo verwerkt in de code, maar blijkbaar heb ik toch iets verkeerd begrepen.
Wie o wie kan mij op weg helpen.