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.