JSONGETVALUE reads a value (value in name-value pair) from the JSON text buffer and returns the number of bytes read.A JSON value may be one of following:
Examples of name-value pairs include:
[ { "No": 1, "Name": "Accident","Place": "Maryland", "Really":true}, { "No": 2, "Name": "Boring", "Place": "Oregon", "Really": true}, { "No": 3, "Name": "Dull", "Place": "Scotland","Really": true}, { "No": 4, "Name": "Noplace", "Place": "England","Really": false}, { "No": 5, "Name": "Why", "Place": "Arizona", "Really": true}, { "No": 6, "Name": "Zzyzx", "Place":"California","Really":true}
The ERROR condition is raised if the JSON text is invalid (for example, the value is invalid, etc.).The ONCODE built-in function tells you why the ERROR condition was raised and the ONSUBCODE built-in function will give you the position of the invalid character, which you can use to examine the invalid character and/or replace it with a valid character.
If the third argument is omitted, the data read is effectively thrown away.If the third argument is present, the data is assigned (after appropriate conversions) to the PL/I variable(s).If the variable has the CHARACTER type, it is converted from UTF-8 to character before assignment.
For a complete program using various JSON built-in functions, see the last example under JSONPUTVALUE.
例 1:
Dcl Array(5) fixed bin(31);
例 2:
Dcl Towns fixed bin(31);
例 3:
Suppose the buffer (pointed to by bufp) contains
{"FD":[ {"D2": 2, "D5": 5}, {"D2": 4, "D5": 9}]}, then bytes = jsongetvalue(bufp, bufl s3); will assign data to the structure S3.
dcl 1 S3, 2 fd(2), 3 d2 fixed bin(15), 3 d5 fixed dec(7);