If you posted a sample of the JSON I could post the SQL to parse it, just as a comparison.
Here's an example I wrote a while back
https://github.com/fathert/json-rpg-example/blob/master/invoice-extract.sql It tries to demonstrate what might be a typical parsing exercise, with header and detail data from some made up invoice data. It creates a test file with a JSON test structure for the invoice and it then uses three SQLs to extract the three different levels of nested data to three typical IBM i files.
To me it's far clearer and cleaner, but I guess it does depend on your level of familiarity with SQL.
Tim.
________________________________
From: RPG400-L <rpg400-l-bounces@xxxxxxxxxxxxxxxxxx> on behalf of Greg Wilburn <gwilburn@xxxxxxxxxxxxxxxxxxxxxxx>
Sent: 19 August 2021 21:05
To: RPG programming on IBM i <rpg400-l@xxxxxxxxxxxxxxxxxx>
Subject: RE: Data-Into using YAJLINTO question
I've yet to see a real-world example using SQL that I could make sense of. To me, it's way more complicated. But I do hate the limitation of the data structure.
-----Original Message-----
From: RPG400-L <rpg400-l-bounces@xxxxxxxxxxxxxxxxxx> On Behalf Of Tim Fathers
Sent: Thursday, August 19, 2021 3:41 PM
To: RPG programming on IBM i <rpg400-l@xxxxxxxxxxxxxxxxxx>
Subject: Re: Data-Into using YAJLINTO question
This is one of the reasons I think SQL is a much better choice.
Get Outlook for Android<
https://aka.ms/AAb9ysg>
________________________________
From: RPG400-L <rpg400-l-bounces@xxxxxxxxxxxxxxxxxx> on behalf of Greg Wilburn <gwilburn@xxxxxxxxxxxxxxxxxxxxxxx>
Sent: Thursday, August 19, 2021 7:38:33 PM
To: RPG programming on IBM i <rpg400-l@xxxxxxxxxxxxxxxxxx>
Subject: Data-Into using YAJLINTO question
So I have some code that looks like this... my JSON order DS contains 100 elements.
dcl-c YAJLOPTS const ('{"document_name": "order", "value_null": "", +
"number_prefix": "YAJL_" }');
dcl-ds order qualified dim(100);
id varchar(10) inz('');
recordtype varchar(10) inz('');
external_id varchar(8) inz('');
name varchar(40) inz('');
........ more elements
clear order;
monitor;
Data-Into order %data(inStmf:RPGOPTS) %parser('YAJLINTO':YAJLOPTS);
on-error;
// Get Message Text
RcvPgmMsg( Error
: %len(Error)
: 'RCVM0200'
: '*'
: 0
: '*ESCAPE'
: ' '
: 0
: '*SAME'
: QUSEC);
ErrorMsg = %subst(Error.Message:Error.rcvm0200.qmhldrtn00 + 1);
RptLine(ErrorMsg);
status = -1;
return status;
endmon;
What happens when the JSON document contains 100, 200, or more? I guess I assumed there would be an error I could retrieve.
Any ideas??
TIA,
Greg
[Logo]<
https://www.totalbizfulfillment.com/> Greg Wilburn
Director of IT
301.895.3792 ext. 1231
301.895.3895 direct
gwilburn@xxxxxxxxxxxxxxxxxxxxxxx<mailto:gwilburn@xxxxxxxxxxxxxxxxxxxxxxx>
1 Corporate Dr
Grantsville, MD 21536
www.totalbizfulfillment.com<
http://www.totalbizfulfillment.com<
http://www.totalbizfulfillment.com<
http://www.totalbizfulfillment.com<
http://www.totalbizfulfillment.com<
http://www.totalbizfulfillment.com<
http://www.totalbizfulfillment.com<
http://www.totalbizfulfillment.com>>>
--
This is the RPG programming on IBM i (RPG400-L) mailing list
To post a message email: RPG400-L@xxxxxxxxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit:
https://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxxxxxxxx
Before posting, please take a moment to review the archives
at
https://archive.midrange.com/rpg400-l.
Please contact support@xxxxxxxxxxxxxxxxxxxx for any subscription related questions.
Help support midrange.com by shopping at amazon.com with our affiliate link:
https://amazon.midrange.com
--
This is the RPG programming on IBM i (RPG400-L) mailing list
To post a message email: RPG400-L@xxxxxxxxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit:
https://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxxxxxxxx
Before posting, please take a moment to review the archives
at
https://archive.midrange.com/rpg400-l.
Please contact support@xxxxxxxxxxxxxxxxxxxx for any subscription related questions.
Help support midrange.com by shopping at amazon.com with our affiliate link:
https://amazon.midrange.com
--
This is the RPG programming on IBM i (RPG400-L) mailing list
To post a message email: RPG400-L@xxxxxxxxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit:
https://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxxxxxxxx
Before posting, please take a moment to review the archives
at
https://archive.midrange.com/rpg400-l.
Please contact support@xxxxxxxxxxxxxxxxxxxx for any subscription related questions.
Help support midrange.com by shopping at amazon.com with our affiliate link:
https://amazon.midrange.com
As an Amazon Associate we earn from qualifying purchases.