× 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.



JSON objects consist of Name/Value pairs. In order to work with DATA-INTO,
Parsers are supposed to call procedure QrnDiReportName() when a Name is
encountered in a JSON document. Since your JSON uses an Escape sequence
(/") in a Name node, I suspect that YAJLINTO is passing a quoted name to
QrnDiReportName(). I suspect that the code behind DATA-INTO is comparing:

Data-structure subfield elementD to "elementD" and not coming up with a
match because of the quotes.

At any rate, this is probably a good reason to not use Escape sequences in
JSON Names. Escape sequences in Names may pass a validator. But I would
suggest only using them in Values; not Names.





On Fri, Jun 5, 2020 at 11:19 AM Justin Taylor <jtaylor.0ab@xxxxxxxxx> wrote:

I'm trying to parse nested JSON using DATA-INTO and YAJL/YAJLINTO.
The top level parses fine, but it's giving me an error on subsequent
levels (4. The document is missing information to match subfields).

Here's a simple example I created.

Dcl-ds jsonDs qualified inz ;
elementA varChar(255) ;
elementB varChar(255) ;
Dcl-ds nestedOne inz ;
elementD varChar(255) ;
End-ds ;
elementC varChar(255) ;
End-ds;

Data-into(e) jsonDs %data(json :'case=any allowextra=yes')
%parser('YAJL/YAJLINTO');

Using this JSON:
{
"elementA":"alpha",
"elementB":"bravo",


"nestedOne":"{\"elementD\":\"delta\",\"nestedTwo\":{\"elementE\":\"echo\",\"elementF\":\"foxtrot\"}",
"elementC":"charlie"
}

Can anyone shed some light on what I'm doing wrong?

TIA
--
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 ...

Follow-Ups:
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.