Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[VB.net] Parsing json response

Pagina: 1
Acties:

  • DennusB
  • Registratie: Mei 2006
  • Niet online
Hi,

Ik probeer vanuit VB.net een json response van mijn eigen webserver te parsen.
De JSON response op de server ziet er zo uit :

code:
1
{"items":[{"item":{"id":"1","username":"dennis","password":"blabla","hash":"JHFJHDJFHDASF"}}]}


De code in VB.net die ik gebruik om het te parsen :

code:
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
   Dim request As HttpWebRequest
        Dim response As HttpWebResponse = Nothing
        Dim reader As StreamReader

        Try

            request = DirectCast(WebRequest.Create("http://www.dennusb.nl/uren/login.php?id=1"), HttpWebRequest)
            response = DirectCast(request.GetResponse(), HttpWebResponse)
            reader = New StreamReader(response.GetResponseStream())

            Dim rawresp As String
            rawresp = reader.ReadToEnd()

            Dim jResults As JObject = JObject.Parse(rawresp)
            Dim results As List(Of JToken) = jResults.Children().ToList()

            For Each item As JProperty In results
                item.CreateReader()
                MsgBox(jResults.Item(2).Item("hash")) ' because my tag in json is img

            Next

        Catch ex As Exception
            MsgBox(ex.ToString)
        Finally
            If Not response Is Nothing Then response.Close()
        End Try


Helaas krijg ik telkens de error : "Accessed jObject values with invalid key value : 2, object name property expected". Ik heb er al flink aan geklust (aan de code) en heel veel op Google gezocht maar ik kom er niet uit hoe ik nou bijvoorbeeld het "hash" item uit de json response krijg.
Iemand die me kan helpen?

Owner of DBIT Consultancy | DJ BassBrewer


  • dcm360
  • Registratie: December 2006
  • Niet online

dcm360

Moderator Discord

HD7767 powered

"Accessed jObject values with invalid key value : 2, object name property expected" lijkt erop te wijzen dat de aanroep Item(2) in jouw code niet mag. Ik zou eerder Item("item") op die plaats verwachten, maar dat zeg ik dan wel zonder enige kennis van parsen van json in vb.net.

  • DennusB
  • Registratie: Mei 2006
  • Niet online
dcm360 schreef op zaterdag 07 september 2013 @ 16:09:
"Accessed jObject values with invalid key value : 2, object name property expected" lijkt erop te wijzen dat de aanroep Item(2) in jouw code niet mag. Ik zou eerder Item("item") op die plaats verwachten, maar dat zeg ik dan wel zonder enige kennis van parsen van json in vb.net.
Bedankt voor je suggestie maar dit lijkt ook helaas niet te werken :(

Owner of DBIT Consultancy | DJ BassBrewer


  • dcm360
  • Registratie: December 2006
  • Niet online

dcm360

Moderator Discord

HD7767 powered

Maar je krijgt nu vast een andere foutmelding die je verder op weg kan helpen. Uit de foutmelding die je eerst plaatste is vrij makkelijk af te leiden dat je ergens iets probeert met een getal 2 waar een string verwacht wordt. Ik heb verder geen glazen bol en ook ga ik mn vingers maar niet branden aan vb.net verder.

  • Styxxy
  • Registratie: Augustus 2009
  • Laatst online: 17:52
dcm360 schreef op zaterdag 07 september 2013 @ 17:13:
[...] en ook ga ik mn vingers maar niet branden aan vb.net verder.
Beeld je dan in dat het C# is ;), behalve wat syntax is het (in dit geval) identiek.

  • dcm360
  • Registratie: December 2006
  • Niet online

dcm360

Moderator Discord

HD7767 powered

C# ga ik me ook niet aan branden, laatste keer dat ik daar iets mee heb gedaan is al weer 3 jaar terug, en dat was iets met .net CF voor Windows Mobile 6. Ik heb het nog wel op mn t.net profiel staan zie ik net :)

  • Alex)
  • Registratie: Juni 2003
  • Laatst online: 18-11 20:57
Je vraagt om het 3e item uit de lijst (lijsten beginnen meestal te tellen bij 0), maar in je voorbeeld-JSON zit maar 1 item? Dan zou ik .Item(0) verwachten.

We are shaping the future


  • Grijze Vos
  • Registratie: December 2002
  • Laatst online: 28-02 22:17
Heeft je json object een vaste structuur? Zo ja, gebruik JSON.NET om te deserialiseren naar objecten. Als ik het me goed herinner heeft JSON.NET vb support.

Op zoek naar een nieuwe collega, .NET webdev, voornamelijk productontwikkeling. DM voor meer info


  • DennusB
  • Registratie: Mei 2006
  • Niet online
Thanks voor de input! Ik ga nog even wat proberen aan de hand van jullie tips :)

Owner of DBIT Consultancy | DJ BassBrewer


  • 4Real
  • Registratie: Juni 2001
  • Laatst online: 14-09-2024
Ik maak veel gebruik van de JavaScriptSerializer. Deze kan JSON omzetten naar een object en dan de structuur die makkelijker te begrijpen is dan een JSON object door te spitten.

Als je lui bent kun je met de volgende site (http://json2csharp.com/) gebruiken om JSON om te zetten naar c# (welke je dan wel weer kan omzetten naar vb.net [hier is ook een site voor]).

En dan kun je het alsvolgt gebruiken:
C#:
1
2
JavaScriptSerializer jss= new JavaScriptSerializer();
 User user = jss.Deserialize<User>(jsonResponse); 


jsonResponse is gewoon een string van je request.

Kleine disclaimer, ik werk alleen in c#, maar ga er vanuit dat dit ook in vb.net mogelijk is.
Pagina: 1