**free Ctl-opt DftActGrp(*No) BndDir( 'YAJL/YAJL' ); /include yajl/qrpglesrc,yajl_h 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; dcl-s docNode like(yajl_val); dcl-s node like(yajl_val); dcl-s i int(10); dcl-s j int(10); dcl-s key varchar(50); dcl-s val like(yajl_val); dcl-s errMsg varchar(500); docNode = yajl_stmf_load_tree('/Home/Paris/jsonstuff/playjson.json' : errMsg); if errMsg <> ''; // handle error endif; // list = yajl_object_find(docNode : 'list'); <-- issue here i = 0; dow yajl_array_loop( docNode : 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; *InLr = *On;