|
This is where it gets a little tricky.
Let assume you have a name field frmpos 11 topos 41 in the DS named cust
the storage
address for name will start at addr = %addr(cust)+frmpos-1
Then you can move the JSON data byte to byte into the DS in a for-loop. The
reason that
you have to move it byte for byte and not as a block is that you may
overwrite other data if
the block is bigger than the result field.
This is rather simple for a alpha field but rather complicated for numeric
and even packed
numeric fields.
On Mon, Aug 14, 2017 at 1:39 PM, Maria Lucia Stoppa <mlstoppa@xxxxxxxxx>
wrote:
Sure, there is something I am missing.an
I make use of API often, so in my case at a certain point there might be
RPG variable rfNAME evaluated through API (or at least other two *methods
I can think of) whose content is "NAME" and the JSON current node name isJSON
"NAME" whose paired value is "Maria Lucia"; then comparing rfNAME and
nodename I finally know I have found the right JSON node for a variablemlstoppa@xxxxxxxxx>
belonging to my data structure: how would you write an RPG specification
which assign "Maria Lucia" to RPG variable NAME?
2017-08-14 10:35 GMT+02:00 Henrik Rützou <hr@xxxxxxxxxxxx>:
Here is what you need and it will give you alle the info you need:apis/quslfld.htm
https://www.ibm.com/support/knowledgecenter/en/ssw_i5_54/
On Mon, Aug 14, 2017 at 9:47 AM, Maria Lucia Stoppa <
canwrote:
If the variable that contains the name is untied to its pointer how
canit
be used to load data in the right memory position?
Il 14/Ago/2017 09:32, "Henrik Rützou" <hr@xxxxxxxxxxxx> ha scritto:
Maria,
if you define the datasctructure externally there are API's that
all Ireadand
the field names in the DS
within your program and then you can use JSON-"find".
There may however be a problem since JSON names are case sensitive
DS
mlstoppa@xxxxxxxxx>names probably
are in upper case.
On Mon, Aug 14, 2017 at 9:12 AM, Maria Lucia Stoppa <
wrote:
Hi everybody
Thank you all for this interesting thread. Just let me sum up
toread
in
it.
I would leave Javascript outside this discussion, because I have
objectdo
this
job in pure RPG ILE without the help of WDSC or other developenvironment.
Anyway, JSON format being pretty much similar to Javascript
allavailabledescription is done on purpose as it makes data immediately
in
aprogrammatic
Javascript object just after being read.
I think all of you got the point of my request, which is to
read JSON data to be loaded into a data structure; anyway, from
ayour
answers it seems impossible to match a JSON pair name/value with
DSspecifications
throughitselfgeneratorvariable/value and that leads to build a couple of programs: a
appropriatecode which knowing the data structure to be loaded can write
specifications which in turn know what to read.
Because the obstacle here is how to make a JSON node identifying
valuesin
a given data structure, as Jon clearly pointed out.
In my case, types and lengths of variables against those of JSON
arise.are
not an issue, because they must match otherwise an error should
Let me try to reverse the approach: my routine starts looping
the
data structure definition, let's say by reading DS D
atormy
routinewhatever is needed as this is a different topic, then the generic
can look for a specific information into the JSON. But how? Given
ignorance, I guess variables' names are converted into pointers
obtain acompile
time, but is there a way to reverse the process so that to
genericloopvariable which contains the name of a variable given a pointer?
2017-08-14 3:55 GMT+02:00 Jon Paris <jon.paris@xxxxxxxxxxxxxx>:
You missed my point Brad - which was that YAJL_OBJECT_LOOP will
through anything. The rest of it was just showing how the
in aobject
can be compared to find its identity.
But I agree in as much as one always needs to know something
bvstone@xxxxxxxxxtobusiness
processing environment. Unless you are simply writing a utility
report
(for example) on what it finds.
Jon Paris
www.partner400.com
www.SystemiDeveloper.com
On Aug 13, 2017, at 12:22 PM, Bradley Stone <
arewhat
wrote:jon.paris@xxxxxxxxxxxxxx
On Sun, Aug 13, 2017 at 1:53 PM, Jon Paris <
wrote:
Not necessary to know the structure Nathan as you can query
kind
of node you are dealing with.
A straight object loop can also be used - for example:
Dow YAJL_OBJECT_LOOP( customerNode: i: key: node );
Select;
When key = 'ID';
customer(c).id = YAJL_GET_NUMBER( node );
When key = 'Name';
customer(c).name = YAJL_GET_STRING( node );
In this instance I only need certain fields and the names
knowingknownnames
-
but the YAJL_OBJECT_LOOP itself dd not require that I know the
or
types of the objects.
How is knowing the names, data types and container not
thethe
numericstructure?
You know you're in a customer array that contains at least a
structureID and character name. I'd say that's at least knowing the
at least partially, if not wholly.
As I said earlier I think code gen is the way to go - but
theJSONyou
structure can be dynamically determined just as XML-SAX allows
to
do
with XML.
Yes, that makes sense, but once you do the program "knows"
relatedstructure.structure and is built appropriately around thus said
related"Reply
Bradley V. Stone
www.bvstools.com
MAILTOOL Benefit #2: The ability to specify a "From" and/or
To"
(RPG400-L)email address!
--
This is the RPG programming on the IBM i (AS/400 and iSeries)
mailing list
To post a message email: RPG400-L@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at http://archive.midrange.com/rpg400-l.
Please contact support@xxxxxxxxxxxx for any subscription
affiliatequestions.
Help support midrange.com by shopping at amazon.com with our
(RPG400-L)link: http://amzn.to/2dEadiD
--
This is the RPG programming on the IBM i (AS/400 and iSeries)
mailing list
To post a message email: RPG400-L@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at http://archive.midrange.com/rpg400-l.
Please contact support@xxxxxxxxxxxx for any subscription
affiliateaffiliateaffiliateaffiliatequestions.
Help support midrange.com by shopping at amazon.com with our
(RPG400-L)link: http://amzn.to/2dEadiD
--
Maria Lucia Stoppa
mlstoppa@xxxxxxxxx
--
This is the RPG programming on the IBM i (AS/400 and iSeries)
mailing list
To post a message email: RPG400-L@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at http://archive.midrange.com/rpg400-l.
Please contact support@xxxxxxxxxxxx for any subscription related
questions.
Help support midrange.com by shopping at amazon.com with our
(RPG400-L)link: http://amzn.to/2dEadiD
--
Regards,
Henrik Rützou
http://powerEXT.com <http://powerext.com/>
--
This is the RPG programming on the IBM i (AS/400 and iSeries)
mailing list
To post a message email: RPG400-L@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at http://archive.midrange.com/rpg400-l.
Please contact support@xxxxxxxxxxxx for any subscription related
questions.
Help support midrange.com by shopping at amazon.com with our
(RPG400-L)link: http://amzn.to/2dEadiD--
This is the RPG programming on the IBM i (AS/400 and iSeries)
mailing list
To post a message email: RPG400-L@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at http://archive.midrange.com/rpg400-l.
Please contact support@xxxxxxxxxxxx for any subscription related
questions.
Help support midrange.com by shopping at amazon.com with our
(RPG400-L)link: http://amzn.to/2dEadiD
--
Regards,
Henrik Rützou
http://powerEXT.com <http://powerext.com/>
--
This is the RPG programming on the IBM i (AS/400 and iSeries)
mailing list
To post a message email: RPG400-L@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at http://archive.midrange.com/rpg400-l.
Please contact support@xxxxxxxxxxxx for any subscription related
questions.
Help support midrange.com by shopping at amazon.com with our affiliate
link: http://amzn.to/2dEadiD
--
Maria Lucia Stoppa
mlstoppa@xxxxxxxxx
--
This is the RPG programming on the IBM i (AS/400 and iSeries) (RPG400-L)
mailing list
To post a message email: RPG400-L@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at http://archive.midrange.com/rpg400-l.
Please contact support@xxxxxxxxxxxx for any subscription related
questions.
Help support midrange.com by shopping at amazon.com with our affiliate
link: http://amzn.to/2dEadiD
--
Regards,
Henrik Rützou
http://powerEXT.com <http://powerext.com/>
--
This is the RPG programming on the IBM i (AS/400 and iSeries) (RPG400-L)
mailing list
To post a message email: RPG400-L@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at http://archive.midrange.com/rpg400-l.
Please contact support@xxxxxxxxxxxx for any subscription related
questions.
Help support midrange.com by shopping at amazon.com with our affiliate
link: http://amzn.to/2dEadiD
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.