Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to get value of JSON array or object in VB.net?

Tags:

json

php

vb.net

I have JSON file having following data. I just want to get the data of "naming" and "unit". Please assist me how to do this in VB.net?

[
        {
            "customerId": "999",
            "deviceId": "XXX999",
            "searchDeviceId": "D_XXX999",
            "utc": "2016-04-28T03:37:00.000Z",
            "lat": 22.5691,
            "lng": 120.3058,
            "sensors": [
                {
                    "naming": "ABC123",
                    "factor": null,
                    "unit": "k",
                    "period": null
                },
                {
                    "naming": "XYZ123",
                    "factor": null,
                    "unit": "c",
                    "period": null
                },
                .
                .
                .
                .
                .
            ]
        }
    ]
like image 672
NajLinus Avatar asked Feb 07 '23 03:02

NajLinus


2 Answers

For C# :

JObject jResults = JObject.Parse("JsonString");
String naming = jResults["sensors"]["naming "];
String unit = jResults["sensors"]["unit "];

For VB:

Dim jResults As JObject = JObject.Parse("JsonString")
Dim naming As [String] = jResults("sensors")("naming ")
Dim unit As [String] = jResults("sensors")("unit ")

You can achieve like this.

like image 159
Chetan Sanghani Avatar answered Feb 09 '23 17:02

Chetan Sanghani


Just in case people are looking to loop through multiple JSON Array or Object in vb.net using Newtonsoft.Json.Linq

 request = url
 request.Headers.Add("Authorization", "Bearer " + accessToken)

            'Get response
            response = DirectCast(request.GetResponse(), HttpWebResponse)

            ' Get the response stream into a reader  
            reader = New StreamReader(response.GetResponseStream())
            Dim JSONresponseFromServer As String = reader.ReadToEnd()

            ' Parse the content into a json object
            Dim json As String = JSONresponseFromServer
            Dim ser As JObject = JObject.Parse(json)
            Dim data As List(Of JToken) = ser.Children().ToList

            For Each item As JProperty In data
                item.CreateReader()
                Select Case item.Name
             Case "sensors" 'each record is inside the entries array
                     For Each Entry As JObject In item.Values
                       Dim naming As String = Entry("naming ").ToList.Item(0)
                       Dim factor As String = Entry("factor").ToList.Item(0)
' you can continue listing the array items untill you reach the end of you array

             Next
        End Select
 Next 

If the Json object item is not in an array and you just want the items it returns

   For Each item As JProperty In data
       item.CreateReader()
             Dim customerId As String = ser("customerId")
             Dim deviceIdAs String = ser("deviceId")
   next

I was getting an error using the 'Chetan Sanghani' answer with the brackets around string ex [String]

like image 36
DJN Avatar answered Feb 09 '23 18:02

DJN