× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.



Tim - thanks for that... But that is exactly why I don't use SQL for this type of thing.

It may be clearer and cleaner to you, but it's clear as mud to me.

-----Original Message-----
From: RPG400-L <rpg400-l-bounces@xxxxxxxxxxxxxxxxxx> On Behalf Of Tim Fathers
Sent: Friday, August 20, 2021 6:49 AM
To: RPG programming on IBM i <rpg400-l@xxxxxxxxxxxxxxxxxx>
Subject: Re: Data-Into using YAJLINTO question

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.

This thread ...

Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

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.