Не удается разобрать длинный JSON.Раньше я работал с «Jsonconverter» из Github, но никогда не работал с таким длинным JSON.Как и в ответе ниже, мне нужно получить 'odometerInMeters': 'Value', а затем и остальные значения, чтобы мне нужно было найти значение и объявить его в строковом поле.
код:
xmlhttp.Open "GET", URL, False
xmlhttp.SetRequestHeader "Content-Type", "application/json"
xmlhttp.SetRequestHeader "x-api-key", xapikey
xmlhttp.SetRequestHeader "Authorization", Token
xmlhttp.Send
Dim Parsed As Dictionary
Set Parsed = mdl_JsonConverter.ParseJson(xmlhttp.ResponseText)
Dim Values As Variant
ReDim Values(Parsed("values").Count, 3)
Dim Value As Dictionary
Dim i As Long
i = 0
For Each Value In Parsed("values")
Values(i, 0) = Value("odometerInMeters")("value")
i = i + 1
Next Value
Пример JSON:
{
"vehicle": {
"vehicleId": "TESTID",
"vin": "2651654156161651561"
},
"ignitionState": {
"state": "IGNITION_OFF",
"timestampObserved": "2018-04-30T23:17:05.000Z"
},
"warningBrakeLiningWear": null,
"warningBrakeFluid": {
"value": false,
"timestampObserved": "2018-04-28T08:32:43.000Z"
},
"tankLevelPercent": null,
"warningWashWater": {
"value": false,
"timestampObserved": "2018-04-28T08:32:43.000Z"
},
"warningLowBattery": {
"value": false,
"timestampObserved": "2018-04-28T08:32:43.000Z"
},
"warningCoolantLevelLow": {
"value": false,
"timestampObserved": "2018-04-28T08:32:43.000Z"
},
"engineCoolantTemperatureCelsius": null,
"engineOilTemperatureCelsius": null,
"parkBrakeStatus": null,
"roofTopStatus": null,
"sunroofStatus": null,
"sunroofEvent": null,
"liquidConsumptionStart": null,
"liquidConsumptionReset": null,
"rangeLiquidInMeters": null,
"liquidRangeSkipIndication": null,
"gasConsumptionStart": null,
"gasConsumptionReset": null,
"gasTankLevelInLitres": null,
"gasTankRangeInMeters": null,
"odometerInMeters": {
"value": 97156000,
"timestampObserved": "2018-04-30T23:17:05.000Z"
},
"position": {
"latitude": 99.11466,
"longitude": 99.54858,
"altitude": null,
"speed": 20,
"heading": 0,
"timestampObserved": "2018-04-30T23:17:05.000Z"
},
"tyreWarningLamp": null,
"tyreFrontLeft": {
"status": "NONE",
"pressureInPascal": 583200,
"timestampObserved": "2018-04-28T08:32:43.000Z"
},
"tyreFrontRight": {
"status": "NONE",
"pressureInPascal": 344700,
"timestampObserved": "2018-04-28T08:32:43.000Z"
},
"tyreRearLeft": {
"status": "NONE",
"pressureInPascal": 136600,
"timestampObserved": "2018-04-28T08:32:43.000Z"
},
"tyreRearRight": {
"status": "NONE",
"pressureInPascal": 433800,
"timestampObserved": "2018-04-28T08:32:43.000Z"
},
"tyreWarningPRW": null,
"serviceIntervalDays": null,
"serviceIntervalDistanceInMeters": null,
"maxRangeInMeters": null,
"drivenTimeInSecondsStart": null,
"drivenTimeInSecondsReset": null,
"averageSpeedInMetersPerSecondStart": null,
"averageSpeedInMetersPerSecondReset": null,
"distanceInMetersStart": null,
"distanceInMetersReset": null,
"immobilizerActive": null,
"centralLockOverallLockState": null,
"batteryVoltage": {
"value": 12.3,
"timestampObserved": "2018-04-28T08:32:43.000Z"
}
}