|
My fault. I didn't realize I had to set the new length after having copied
the buffer.
Thank you
Il giorno gio 14 mag 2020 alle ore 12:18 Maria Lucia Stoppa <
mlstoppa@xxxxxxxxx> ha scritto:
Hi all,previous
Just a question about YAJL_copyBuf as I am not able to determine the
correct size of the buffer.
It seems like the buffer length remains set to the larger one, so when a
new copy is done of a shorter number of bytes it always copies the
amount of data, meaning the result data contains garbage at the end.affiliate
I made lots of tries (like using %len(%trim(xxx)) instead of %size or
getting a buffer pointer a then using the returned length) but I can't
make it working and I am running out of time.
That's the code:
dcl-s jsonData char(32000);
dcl-s wRetLen int(10:0) inz;
dcl-s CCSID int(10:0) inz(0); // 0=job CCSID, 1208=utf-8
clear jsonData;
clear wRetLen;
YAJL_genOpen( *off );
YAJL_beginObj();
YAJL_addBool('success' : stdOutput.success);
YAJL_addChar('errCode' : stdOutput.errCode);
YAJL_addChar('message' : stdOutput.message);
YAJL_addBool('missingData' : stdOutput.missingData);
// stdOutput.data is already a JSON object
YAJL_addPreformattedPtr(
'data'
: %addr(stdOutput.data: *DATA)
: %len(%trimr(stdOutput.data))
);
YAJL_endObj();
YAJL_copyBuf(CCSID
: %addr(jsonData)
: %size(jsonData)
: wRetLen);
YAJL_genClose();
response.body = %trim(jsonData);
response.status = HTTP_OK;
Thank you very much for any help.
Il giorno sab 9 mag 2020 alle ore 11:07 Maria Lucia Stoppa <
mlstoppa@xxxxxxxxx> ha scritto:
@Charles, you are right, but despite the many tries there are times,
which I couldn't focus, where using varchar doesn't work as expected;
that's the reason trim functions are present in the code.
But I'll try again.
Lucia
Il giorno sab 9 mag 2020 alle ore 00:41 Charles Wilt <
charles.wilt@xxxxxxxxx> ha scritto:
And hopefully, if stdOutput.data is built properly without trailing
blanks...
She can get rid of the %trimr()...
YAJL_addPreformattedPtr('data'
: %addr(stdOutput.data:*DATA)
: %len(stdOutput.data);
Charles
On Fri, May 8, 2020 at 2:08 PM Scott Klement <sk@xxxxxxxxxxxxxxxx>
wrote:
Correct, this is what yajl_addPreformattedPtr() is meant for.pointer
If I understand Maria's original post, though, the first parameter
should not be omitted because this is being added as a field named
'data' in an object. So the code would look something like this:
YAJL_beginObj();
YAJL_addBool('success' : stdOutput.success);
YAJL_addChar('errCode' : stdOutput.errCode);
YAJL_addChar('message' : stdOutput.message);
YAJL_addPreformattedPtr('data'
: %addr(stdOutput.data:*DATA)
: %len(%trimr(stdOutput.data));
YAJL_endObj();
On 5/8/2020 9:16 AM, Jon Paris wrote:
Looks like you would *Omit the first parameter then supply the
to the reformatted string plus its length in the third parm - whichdoesn't
show up in the prototype doc but is present in the actual proto.related
--
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
questions.
Help support midrange.com by shopping at amazon.com with our
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
--
Maria Lucia Stoppa
mlstoppa@xxxxxxxxx
--
Maria Lucia Stoppa
mlstoppa@xxxxxxxxx
--
Maria Lucia Stoppa
mlstoppa@xxxxxxxxx
--
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 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.