|
I don't know what you're looking for but here is one. I spend all day write JSON CODE.
Thanks
John Slanina
begsr parseOK;
// Clear out any control characters, replace with blanks
gXmlResponse = %ScanRpl(x'0D' : '' : gXmlResponse );
gXmlResponse = %ScanRpl(x'25' : ' ' : gXmlResponse );
gXmlResponse = %ScanRpl(x'00' : ' ' : gXmlResponse );
docNode = yajl_buf_load_tree(%addr(gXmlResponse:*data) : %len(gXmlResponse) : JsonErrMsg);
items = YAJL_object_find(docNode: 'items');
links = YAJL_object_find(docNode: 'links');
i = *zeros;
dow YAJL_ARRAY_LOOP( items : i: val );
clear ofiupd01Ds;
Node = YAJL_object_find(val : 'inventoryId');
ofiupd01DS.CBJJA4 = YAJL_get_Number(Node);
Node = YAJL_object_find(val : 'serialNumber');
ofiupd01DS.CBWPCS = YAJL_get_string(Node);
Node = YAJL_object_find(val : 'item_number');
ofiupd01DS.CBSXBT = YAJL_get_string(Node);
ofiupd01DS.CBJKA4 = resourceId_P;
Node = YAJL_object_find(val : 'status');
ofiupd01DS.CBW3CS = YAJL_get_string(Node);
ofiupd01DS.CBACDT = %dec(%date():*cymd);
ofiupd01DS.CBACTM = %dec(%Time():*ISO);
ofiupd01DS.CBH6NB = PGMSDS.JOB_NUM;
ofiupd01DS.CBADVN = PGMSDS.PROC_PGM;
ofiupd01DS.CBAFVN = PGMSDS.JOB_USER;
// Delete the prior value of this record if in file and replace.
delete (ofIupd01Ds.CBJJA4) ofiupd01;
write ofIup01f ofIupd01Ds;
enddo;
i = *zeros;
dow YAJL_ARRAY_LOOP( links : i: val );
Node = YAJL_object_find(val : 'rel');
relVal= YAJL_get_string(Node);
if relVal = 'next';
Node1 = YAJL_object_find(val : 'href');
uri = YAJL_get_string(Node1);
Endif;
enddo;
endsr;
{
"totalResults": 1482,
"limit": 10,
"offset": 0,
"items": [
{
"inventoryId": 28282912,
"status": "resource",
"serialNumber": "PKGRVSSQG",
"quantity": 1,
"resourceId": "81333",
"resourceInternalId": 259,
"item_number": "S425HDC",
"port_info": "1:C",
"icoms_techid": "81333",
"links": [
{
"rel": "canonical",
"href": "https://api.etadirect.com/rest/ofscCore/v1/inventories/28282912"
},
{
"rel": "describedby",
"href": "https://api.etadirect.com/rest/ofscCore/v1/metadata-catalog/inventories"
}
]
},
{
"inventoryId": 26351924,
"status": "resource",
"serialNumber": "A9200019076F452",
"quantity": 1,
"resourceId": "81333",
"resourceInternalId": 259,
"item_number": "TIVMINI",
"port_info": "1:C",
"icoms_techid": "81333",
"links": [
{
"rel": "canonical",
"href": "https://api.etadirect.com/rest/ofscCore/v1/inventories/26351924"
},
{
"rel": "describedby",
"href": "https://api.etadirect.com/rest/ofscCore/v1/metadata-catalog/inventories"
}
]
},
{
"inventoryId": 28282903,
"status": "resource",
"serialNumber": "PKGTVKSQK",
"quantity": 1,
"resourceId": "81333",
"resourceInternalId": 259,
"item_number": "S425HDC",
"port_info": "1:C",
"icoms_techid": "81333",
"links": [
{
"rel": "canonical",
"href": "https://api.etadirect.com/rest/ofscCore/v1/inventories/28282903"
},
{
"rel": "describedby",
"href": "https://api.etadirect.com/rest/ofscCore/v1/metadata-catalog/inventories"
}
]
},
{
"inventoryId": 28282916,
"status": "resource",
"serialNumber": "PKCPJXJPT",
"quantity": 1,
"resourceId": "81333",
"resourceInternalId": 259,
"item_number": "S425HDC",
"port_info": "1:C",
"icoms_techid": "81333",
"links": [
{
"rel": "canonical",
"href": "https://api.etadirect.com/rest/ofscCore/v1/inventories/28282916"
},
{
"rel": "describedby",
"href": "https://api.etadirect.com/rest/ofscCore/v1/metadata-catalog/inventories"
}
]
},
{
"inventoryId": 28282913,
"status": "resource",
"serialNumber": "PKGSQQXLD",
"quantity": 1,
"resourceId": "81333",
"resourceInternalId": 259,
"item_number": "S425HDC",
"port_info": "1:C",
"icoms_techid": "81333",
"links": [
{
"rel": "canonical",
"href": "https://api.etadirect.com/rest/ofscCore/v1/inventories/28282913"
},
{
"rel": "describedby",
"href": "https://api.etadirect.com/rest/ofscCore/v1/metadata-catalog/inventories"
}
]
},
{
"inventoryId": 28282914,
"status": "resource",
"serialNumber": "PKCQVPWNR",
"quantity": 1,
"resourceId": "81333",
"resourceInternalId": 259,
"item_number": "S425HDC",
"port_info": "1:C",
"icoms_techid": "81333",
"links": [
{
"rel": "canonical",
"href": "https://api.etadirect.com/rest/ofscCore/v1/inventories/28282914"
},
{
"rel": "describedby",
"href": "https://api.etadirect.com/rest/ofscCore/v1/metadata-catalog/inventories"
}
]
},
{
"inventoryId": 28282900,
"status": "resource",
"serialNumber": "PKCQKGSSV",
"quantity": 1,
"resourceId": "81333",
"resourceInternalId": 259,
"item_number": "S425HDC",
"port_info": "1:C",
"icoms_techid": "81333",
"links": [
{
"rel": "canonical",
"href": "https://api.etadirect.com/rest/ofscCore/v1/inventories/28282900"
},
{
"rel": "describedby",
"href": "https://api.etadirect.com/rest/ofscCore/v1/metadata-catalog/inventories"
}
]
},
{
"inventoryId": 28282902,
"status": "resource",
"serialNumber": "PKGTMCDGG",
"quantity": 1,
"resourceId": "81333",
"resourceInternalId": 259,
"item_number": "S425HDC",
"port_info": "1:C",
"icoms_techid": "81333",
"links": [
{
"rel": "canonical",
"href": "https://api.etadirect.com/rest/ofscCore/v1/inventories/28282902"
},
{
"rel": "describedby",
"href": "https://api.etadirect.com/rest/ofscCore/v1/metadata-catalog/inventories"
}
]
},
{
"inventoryId": 28282832,
"status": "resource",
"serialNumber": "EVY616D22179",
"quantity": 1,
"resourceId": "81333",
"resourceInternalId": 259,
"item_number": "EDTA200",
"port_info": "1:C",
"icoms_techid": "81333",
"links": [
{
"rel": "canonical",
"href": "https://api.etadirect.com/rest/ofscCore/v1/inventories/28282832"
},
{
"rel": "describedby",
"href": "https://api.etadirect.com/rest/ofscCore/v1/metadata-catalog/inventories"
}
]
},
{
"inventoryId": 28282898,
"status": "resource",
"serialNumber": "PKCPXJNLS",
"quantity": 1,
"resourceId": "81333",
"resourceInternalId": 259,
"item_number": "S425HDC",
"port_info": "1:C",
"icoms_techid": "81333",
"links": [
{
"rel": "canonical",
"href": "https://api.etadirect.com/rest/ofscCore/v1/inventories/28282898"
},
{
"rel": "describedby",
"href": "https://api.etadirect.com/rest/ofscCore/v1/metadata-catalog/inventories"
}
]
}
],
"links": [
{
"rel": "canonical",
"href": "https://api.etadirect.com/rest/ofscCore/v1/resources/81333/inventories"
},
{
"rel": "describedby",
"href": "https://api.etadirect.com/rest/ofscCore/v1/metadata-catalog/resources#definitions/inventories"
},
{
"rel": "next",
"href": "https://api.etadirect.com/rest/ofscCore/v1/resources/81333/inventories?offset=10"
}
]
}
-----Original Message-----
From: RPG400-L [mailto:rpg400-l-bounces@xxxxxxxxxxxx] On Behalf Of Booth Martin
Sent: Wednesday, August 23, 2017 3:37 PM
To: RPG programming on the IBM i (AS/400 and iSeries)
Subject: Re: RPG, retrieving JSON data from a web service
are there a couple of examples of other programmer's versions of using Scott Klement's YAGL library to retrieve JSON data? I am missing some important aspect. Whether it is a typo, a total mess-up, or what I do not know. I am thinking that perhaps if I see how others have used his hard work then I will have it working too.
I can retrieve the data with javascript in a non-iSeries environment so I am presuming I have a stupid tucked away in there and am being blind to it.
On 8/20/2017 5:58 PM, Booth Martin wrote:
I am failing to understand something.--
* I am using Scott Klement's YAJL library for the iSeries.
This is the RPG programming on the IBM i (AS/400 and iSeries) (RPG400-L) mailing list To post a message email: RPG400-L@xxxxxxxxxxxx To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives at http://archive.midrange.com/rpg400-l.
Please contact support@xxxxxxxxxxxx for any subscription related questions.
Help support midrange.com by shopping at amazon.com with our affiliate link: http://amzn.to/2dEadiD
As an Amazon Associate we earn from qualifying purchases.
This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].
Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.