I am working on switch over to yajl_stdin_load_tree in my next version of my front end router program.
Then I just pass yajl_val as a parm to all my api programs from the router program.
Thanks
John Slanina
On 12/18/18, 9:50 AM, "WEB400 on behalf of Justin Taylor" <web400-bounces@xxxxxxxxxxxx on behalf of JUSTIN@xxxxxxxxxxxxx> wrote:
That's it. I don't need it often, but it comes in handy on occasion.
Thanks
________________________________________
From: Slanina, John [jslanina@xxxxxxxxxx]
Sent: Monday, December 17, 2018 3:08 PM
To: Web Enabling the IBM i (AS/400 and iSeries)
Subject: Re: [WEB400] UTF-8 conversion in a REST program
So what you is this ?
Dcl-s varInput varChar(65535) ;
Dcl-s varinputUTF8 like(varName) ccsid(*utf8) ;
if ContentType = 'application/json' or ContentType = 'application/vnd.api+json';
QtmhRdStin(varInputUTF8: RdiLen : RdiRecLen : APIErr);
varInput = varInputUTF8;
else;
QtmhRdStin(varInput: RdiLen : RdiRecLen : APIErr);
endif;
Thanks
John Slanina
On 12/17/18, 2:14 PM, "WEB400 on behalf of Justin Taylor" <web400-bounces@xxxxxxxxxxxx on behalf of JUSTIN@xxxxxxxxxxxxx> wrote:
RPG has built-in CCSID conversion, starting (IIRC) at 7.3.
-----Original Message-----
From: Slanina, John [mailto:jslanina@xxxxxxxxxx]
Sent: Monday, December 17, 2018 1:09 PM
To: Web Enabling the IBM i (AS/400 and iSeries) <web400@xxxxxxxxxxxx>
Subject: Re: [WEB400] UTF-8 conversion in a REST program
Here is my code to so it. If you need a quick fix. There is other ways in YAJL to do it in one program
Thanks
John Slanian
dcl-ds fromCCSID likeds(QtqCode_t) Inz(*LIKEDS);
dcl-ds toCCSID likeds(QtqCode_t) Inz(*LIKEDS);
dcl-ds hConv likeds(iconv_t) Inz(*LIKEDS);
dcl-ds iconv_t Qualified template;
rtn_value int(10);
cd int(10) dim(12) inz(0);
end-ds;
dcl-pr ibmIConvOpen LikeDS(iconv_t) ExtProc('QtqIconvOpen');
*n likeds(QtqCode_t);
*n likeds(QtqCode_t);
end-pr;
dcl-pr ibmIConv int(10) ExtProc('iconv');
*n LikeDS(iconv_t) value;
*n pointer;
*n int(10) Const;
*n pointer;
*n Int(10) Const;
end-pr;
dcl-pr ibmIconvClose int(10) extproc('iconv_close');
*n LikeDS(iconv_t);
end-pr;
monitor;
envrec = *blanks;
EnvName = 'CONTENT_TYPE';
QtmhGetEnv(EnvRec : %size(EnvRec) : RecLen : EnvName : %Len(%Trim(EnvName)) : APIErr);
ContentType = %xlate(uppercase:lowercase:%trim(%Subst(EnvRec : 1 : RecLen))); on-error; endmon;
// Read Body
monitor;
QtmhRdStin(RdiRec : RdiLen : RdiRecLen : APIErr); on-error; endmon;
if ContentType = 'application/json' or ContentType = 'application/vnd.api+json';
monitor;
RdiLenOut = RdiRecLen;
RdiRec_P = %addr(RdiRec);
RdiRecOut_P = %addr(RdiRecOut);
rc = ibmIConv(hConv : RdiRec_P : RdiRecLen : RdiRecOut_P : RdiLenOut);
RdiRec = %trim(RdiRecOut);
RdiRecLen = %len(%trim(RdiRec));
on-error;
endmon;
endif;
--
This is the Web Enabling the IBM i (AS/400 and iSeries) (WEB400) mailing list
To post a message email: WEB400@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit:
https://lists.midrange.com/mailman/listinfo/web400
or email: WEB400-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at
https://archive.midrange.com/web400.
As an Amazon Associate we earn from qualifying purchases.