简体   繁体   中英

How to get value of JSON array or object in 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
                },
                .
                .
                .
                .
                .
            ]
        }
    ]

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.

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]

Use Jarray its better

see this example and try to make it on your json data its clear .

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM