[VB.NET] JSON Array inlezen

Pagina: 1
Acties:

Vraag


Acties:
  • 0 Henk 'm!

  • skate master
  • Registratie: September 2004
  • Laatst online: 21:44

skate master

Autodesk Educator Expert

Topicstarter
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
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.

Beste antwoord (via skate master op 13-12-2016 12:02)


  • Mercatres
  • Registratie: September 2009
  • Laatst online: 12:25
Is er geen implementatie voor VB .NET van NewtonSoft JSON? Ik weet dat een alternatief aanbieden geen oplossing is, maar in dit geval gebruik je toch al een NuGet-package, waarom dan niet meteen het meest gebruikte/beste?

Verder lijkt 't me een kwestie van een zaakje goed debuggen.

Alle reacties


Acties:
  • Beste antwoord
  • 0 Henk 'm!

  • Mercatres
  • Registratie: September 2009
  • Laatst online: 12:25
Is er geen implementatie voor VB .NET van NewtonSoft JSON? Ik weet dat een alternatief aanbieden geen oplossing is, maar in dit geval gebruik je toch al een NuGet-package, waarom dan niet meteen het meest gebruikte/beste?

Verder lijkt 't me een kwestie van een zaakje goed debuggen.

Acties:
  • 0 Henk 'm!

  • skate master
  • Registratie: September 2004
  • Laatst online: 21:44

skate master

Autodesk Educator Expert

Topicstarter
Mercatres schreef op donderdag 8 december 2016 @ 16:47:
Is er geen implementatie voor VB .NET van NewtonSoft JSON? Ik weet dat een alternatief aanbieden geen oplossing is, maar in dit geval gebruik je toch al een NuGet-package, waarom dan niet meteen het meest gebruikte/beste?

Verder lijkt 't me een kwestie van een zaakje goed debuggen.
Dit was eigenlijk niet het antwoord waarop ik gehoopt had, maar heeft mij uiteindelijk wel een werkende code opgeleverd.
Door naar NewtonSoft JSON over te schakelen is het me wel gelukt om de JSON in te lezen.

Dus Mercatres toch bedankt voor de input. _/-\o_

Acties:
  • 0 Henk 'm!

  • Caelorum
  • Registratie: April 2005
  • Laatst online: 20:22
Mercatres schreef op donderdag 8 december 2016 @ 16:47:
Is er geen implementatie voor VB .NET van NewtonSoft JSON? Ik weet dat een alternatief aanbieden geen oplossing is, maar in dit geval gebruik je toch al een NuGet-package, waarom dan niet meteen het meest gebruikte/beste?[...]
.Net libaries zijn niet taalgebonden ;)