Я довольно новичок в разборе Json.Из моего Json (см. Ниже) я хотел бы извлечь значение id (присутствует в разделе данных) в данный момент.
{
"data": [{
"date": "2018-10-10 10:50:00",
"vehicle_id": 11,
"accept_phone": true,
"phone": "070000000",
"accept_email": true,
"email": "abe@abeprakash.com",
"details": "Special Very",
"user_id": "3378",
"id": 11513,
"team_id": 2806,
"user_info": {
"id": 3378,
"name_first": "abe",
"name_last": "prakash",
"name_full": "abe prakash ",
"email": "abe@abeprakash.com",
"phone": "070000000",
"ratings_count": 0
},
"recipient": {
"name": "Tim ",
"email": "Dev@journease.co.uk",
"phone": "+44 (0)117 9586 180"
},
"footer_text": "",
"invoice_logo": "",
"including_vat": 0
},
"distance_in_miles": 0,
"vehicle": {
"id": 11,
"name": "Abe Car",
"icon": "\/assets\/uploads\/vehicles\/11.svg",
"sort_no": 8,
"size": 800
}
}
],
"properties": []
}
Я экспериментировал, и вот как далеко я продвинулся, не уверен, что это лучший способ сделать это либо
Попробуйте 1 (topLevelResponseэто не что иное, как идентификатор в строке json имеет значение)
Dim responseReader As New StreamReader(response.GetResponseStream())
'Use the below variable to see the rawJson
Dim rawJsonResponseString = ""
Using rawJsonResponseStream As Stream = response.GetResponseStream()
Dim reader As StreamReader = New StreamReader(rawJsonResponseStream, Encoding.UTF8)
rawJsonResponseString = reader.ReadToEnd()
End Using
Dim topLevelResponse As JObject = JObject.Parse(rawJsonResponseString)("data").SelectToken("id")
Попробуйте 2 (я не хочу перебирать, чтобы найти идентификатор, так как может быть загружено больше элементов в jsonответ в будущем)
Dim token As JToken = CType(topLevelResponse.SelectToken("data"), JArray)
Любая помощь очень ценится, ребята.Как вы, ребята, заметили, я использую VB.net и Json.net.Спасибо.
Попробуйте 3 (Я получил значение, но теперь уверен, что неплохо бы жестко закодировать, где значение, хотя в данных всегда будет одна позиция)
Dim extractID = JObject.Parse (rawJsonResponseString) .SelectToken ("data [0] .id")