| The util.JSON class / util.JSON methods | |
Transforms a record variable to a flat JSON formatted string, by excluding empty records and empty arrays.
util.JSON.stringifyOmitNulls( source { RECORD | DYNAMIC ARRAY } ) RETURNING result STRING
The util.JSON.stringifyOmitNulls() class method takes a RECORD or DYNAMIC ARRAY variable as parameter, and generates the corresponding data string in JSON format, as defined in the [RFC4627] specification.
For more details about FGL to JSON conversion, see Genero BDL to JSON conversion rules.
The method raises error -8110 if the JSON string cannot be generated.
IMPORT util
MAIN
DEFINE cust_rec RECORD
cust_data RECORD
cust_num INTEGER,
cust_name VARCHAR(30),
cust_phone VARCHAR(20)
END RECORD,
order_ids DYNAMIC ARRAY OF INTEGER
END RECORD
DEFINE js STRING
LET cust_rec.cust_data.cust_num = 345
LET cust_rec.cust_data.cust_name = "McMaclum"
LET cust_rec.cust_data.cust_name = NULL
LET cust_rec.order_ids[1] = 4732
LET cust_rec.order_ids[2] = NULL
LET cust_rec.order_ids[3] = 2194
DISPLAY "=== With values:"
LET js = util.JSON.stringify( cust_rec )
DISPLAY "1: stringify():\n", util.JSON.format( js )
LET js = util.JSON.stringifyOmitNulls( cust_rec )
DISPLAY "2: stringifyOmitNulls():\n", util.JSON.format( js )
DISPLAY "=== NULLs:"
INITIALIZE cust_rec TO NULL
LET js = util.JSON.stringify( cust_rec )
DISPLAY "3: stringify():\n", util.JSON.format( js )
LET js = util.JSON.stringifyOmitNulls( cust_rec )
DISPLAY "4: stringifyOmitNulls():\n", util.JSON.format( js )
END MAIN
=== With values:
1: stringify():
{
"cust_data": {
"cust_num": 345
},
"order_ids": [4732,null,2194
]
}
2: stringifyOmitNulls():
{
"cust_data": {
"cust_num": 345
},
"order_ids": [4732,null,2194
]
}
=== NULLs:
3: stringify():
{
"cust_data": {
},
"order_ids": [
]
}
4: stringifyOmitNulls():
{
}