Here is a snippet of the JSON text:
Code: Select all
[
{
"id": "502a-sdf4sf-b5af-08da00b3d4",
"key": "000039",
"name": "ITEM NUMBER",
"extensionDataByField": {
"batch": "B0000025",
"quantity": "100",
"customer": "CUSTOMER NAME",
"status": "In Transit",
"statustime": null
},
"extensionData": {
"status": "In Transit",
"batch": "B0000025",
"quantity": "100",
"customer": "CUSTOMER NAME",
"laststatuschange": "Thu Feb 10 2022"
},
"ownerId": null,
"ownerKey": null,
"ownerName": null,
"ownerExtensionDataByField": null,
"ownerExtensionData": null,
"tagId": "tag0sdr-es24d-468b-597c-08da0b4a0dec",
"tagKey": "A00000000000000000000039"
}
]
Code: Select all
dcl-ds list_t qualified template;
id varchar(50) inz('');
key varchar(6);
name varchar(25);
dcl-ds extensionDataByField;
batch char(8);
quantity int(5);
customer varchar(40);
status varchar(25);
statusTime varchar(50);
end-ds;
dcl-ds extensionData;
glstatus varchar(25);
glbatch char(8);
glquantity int(5);
glcustomer varchar(40);
gllaststatuschange varchar(50);
end-ds;
ownerId varchar(50);
ownerKey varchar(50);
ownerName varchar(50);
ownerExtensionDataByField varchar(50);
ownerExtensionData varchar(50);
tagId varchar(50);
tagKey char(24);
end-ds;
dcl-ds result qualified;
list likeds(list_t) dim(999);
end-ds;
docNode = yajl_stmf_load_tree(FILE_LOCATION : errMsg);
if errMsg <> '';
// handle error
endif;
list = yajl_object_find(docNode : 'list'); <-- issue here
i = 0;
dow yajl_array_loop(list : i : node);
j = 0;
dow yajl_object_loop(node : j : key : val);
select;
when key = 'id';
result.list(i).id = yajl_get_string(val);
when key = 'key';
result.list(i).key = yajl_get_string(val);
when key = 'name';
result.list(i).name = yajl_get_string(val);
endsl;
enddo;
enddo;