这是RPG的新手,我对如何做到这一点有点迷茫。"data“是一个包含我需要的信息的数组,我能够解析它。然而,"cargoLoaded“是"data”数组中的一个数组,它只包含一项"cargoSensor1“。我需要cargoSensor1的值。
JSON和我下面代码的一部分(不包括数据区域)。
我想要解析的JSON (我需要值cargoSensor1)
{
"success": true,
"data": [
{
"address": "6061 Segale Park Dr C",
"cargoLoaded": [{"cargoSensor1": false}],
"city": "Tukwila",
"deviceId": 10841293,
"eventDateTime": "2020-03-02 17:27:56",
"eventTypeName": "Cargo Update",
"gpsTrackedDistance": 3.029E7,
"heading": 294,
"id": 14364709,
"idle": false,
"idleStartTime": null,
"ignitionOn": false,
"ignitionOnStartTime": null,
"inputs": ["ATIS Inactive"],
"landmarkId": null,
"landmarkName": null,
"lat": 47.434048,
"lng": -122.258198,
"moving": false,
"movingStartTime": null,
"name": "1823U",
"serial": "BK2007237851",
"speed": 0,
"state": "WA",
"stopped": true,
"stoppedStartTime": "2020-02-25 17:20:31",
"tractorId": null,
"tractorName": null,
"tractorPower": false,
"tractorPowerStartTime": "",
"typeId": 3,
"typeName": "Trailer",
"zip": "98188"
}, *
/Free
docNode = yajl_stmf_load_tree('/home/smid/D#status.txt' :ErrMsg);
If ErrMsg = '';
list = yajl_object_find( docNode: 'data');
i=0;
DoW YAJL_ARRAY_LOOP(list: i: node);
//get trailer number from name value-works
val = yajl_object_find(node: 'name');
valName = yajl_get_string(val);
dsply valName;
exsr FMT_TLR_KEY;
dsply @TLR1;
//Atempt to get cargoSensor data-dont work
val = yajl_object_find(node: 'cargoSensor1');
valCarg = yajl_is_true(val);
dsply valCarg;
exsr UPD_TLR;
exsr UPD_SAT_TLR;
EndDo;
EndIf;
yajl_tree_free(docNode);
*inlr = *on;
/End-Free发布于 2020-03-03 06:25:01
应该像访问data数组一样访问cargoLoaded数组:
/Free
docNode = yajl_stmf_load_tree('/home/smid/D#status.txt' :ErrMsg);
If ErrMsg = '';
list = yajl_object_find( docNode: 'data');
i=0;
DoW YAJL_ARRAY_LOOP(list: i: node);
//get trailer number from name value-works
val = yajl_object_find(node: 'name');
valName = yajl_get_string(val);
dsply valName;
exsr FMT_TLR_KEY;
dsply @TLR1;
//UPDATED CODE BLOCK HERE
cargoList = yajl_object_find(node: 'cargoLoaded');
DoW YAJL_ARRAY_LOOP(cargoList: j: node);
val = yajl_object_find(node: 'cargoSensor1');
valCarg = yajl_get_string(val);
dsply valCarg;
exsr UPD_TLR;
exsr UPD_SAT_TLR;
EndDo;
EndDo;
EndIf;
yajl_tree_free(docNode);
*inlr = *on;
/End-Freehttps://stackoverflow.com/questions/60495054
复制相似问题