[英]RPG YAJL parse array within an array
RPG新手,我對如何做到這一點有點迷茫。 “數據”是一個包含我需要的信息的數組,我能夠解析它。 然而,“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
您應該像訪問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-Free
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.