Re: Error Reading JSON using Data-INTO

Charles Wilt <[email protected]>
Newsgroups gmane.comp.systems.as400.web
Message-ID <CAJ=Tnc7Wpc_c00Qki+9CzSXhkhjzS97E8ikT94aTWcaskn+Dxg@mail.gmail.com>
I should have included title...

dcl-ds doc;
  dcl-ds data;
    ...
  end-ds;
  title char(50);
end-ds;

Charles

On Wed, Aug 4, 2021 at 3:19 PM Charles Wilt <[email protected]> wrote:

> Your JSON doc is a little wonky...
>
> Thing to keep in mind is that the root of a JSON doc isn't named.  "Data"
> is actually the name of a json object in your document.
>
> the ds you need is like so
>
> dcl-ds doc;
>   dcl-ds data;
>     ...
>   end-ds;
> end-ds;
>
> Data-into doc %Data(JsonString:'allowextra=yes') %PARSER('YAJLINTO');
>
> HTH,
> Charles
>
>
> On Wed, Aug 4, 2021 at 3:07 PM Kathan Pandya <[email protected]> wrote:
>
>> Hi,
>>
>> I am new to YAJL and using DATA-INTO. I have a simple json and I am trying
>> to read it using DATA-INTO and getting below error:
>> Cause . . . . . : While parsing a document for the DATA-INTO operation,
>> the
>> parser found that the document does not correspond to RPG variable "data"
>> and the options do not allow for this. The reason code is 4. The exact
>> subfield for which the error was detected is "data.instruction2". The
>> options are "allowextra=yes". The document name is *N; *N indicates that
>> the
>> document is not an external file. The parser is 'YAJLINTO'. *N indicates
>> that the parser is a procedure pointer.
>>
>> JSON -
>> {
>> "data": {
>> "instruction2": "FIRST SEAT",
>> "seat1l3": "2356",
>> "reset34": "Yes",
>> "temp": "-78",
>> "seat1l4": "326",
>> "seat2l3": "3265",
>> "instruction1": "** Daily Check Call **",
>> "seat2l4": "986",
>> "trl": "12345",
>> "seat2a70": "253",
>> "seat1a70": "895",
>> "eta": "2021-08-18T11:23:24-07:00",
>> "onsched": "Yes",
>> "hub": "896586",
>> "odo": "123658",
>> "reasonoffsched": "traffic"
>> },
>> "title": "Daily Check Call - 01"
>> }
>>
>>
>> RPG Declaration -
>>
>> dcl-ds data qualified;
>> instruction2 char(50);
>> seat1l3 char(5);
>> reset34 char(1);
>> temp char(3);
>> seat1l4 char(5);
>> seat2l3 char(5);
>> instruction1 char(50);
>> seat2l4 char(5);
>> trl char(6);
>> seat2a70 char(5);
>> seat1a70 char(5);
>> eta char(26);
>> onsched char(1);
>> hub char(7);
>> odo char(11);
>> reasonoffsched char(70);
>> title char(50);
>> end-ds;
>>
>> I am moving the data into a standalone character variable name JsonString
>> (using it below in Data-INTO)
>>
>> Statement -
>> Data-into data %Data(JsonString:'allowextra=yes') %PARSER('YAJLINTO');
>>
>>
>> Please advise what am I doing wrong?
>> --
>> This is the Web Enabling the IBM i (AS/400 and iSeries) (WEB400) mailing
>> list
>> To post a message email: [email protected]
>> To subscribe, unsubscribe, or change list options,
>> visit: https://lists.midrange.com/mailman/listinfo/web400
>> or email: [email protected]
>> Before posting, please take a moment to review the archives
>> at https://archive.midrange.com/web400.
>>
>>
-- 
This is the Web Enabling the IBM i (AS/400 and iSeries) (WEB400) mailing list
To post a message email: [email protected]
To subscribe, unsubscribe, or change list options,
visit: https://lists.midrange.com/mailman/listinfo/web400
or email: [email protected]
Before posting, please take a moment to review the archives
at https://archive.midrange.com/web400.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.