JSON Decoding Functions(3.0)
The functions described in this section are used to decode JSON formatted strings.
jsonDecodeUdr
This function decodes a JSON formatted string to a DRUDR.
void jsonDecodeUdr ( string jsonString,
DRUDR udr,
boolean requireExactMapping (optional) )
| Parameter | Description |
|---|---|
| The JSON string to decode |
| udr | The UDR to store the decoded data |
| requireExactMapping | Set to true if there must be matching UDR fields for all fields in the JSON string. The default value is When When |
Returns | Nothing |
Example - Encoding UDR to JSON and decoding the result
Ultra:
internal itemUDR {
int itId;
string itDescription;
string itMisc1 : optional;
list<string> itMisc2 : optional;
};
internal transactionUDR {
int trId ;
string trDescription;
float amount;
long trDate;
map<string, itemUDR> trItems;
boolean trProcessed;
ipaddress trSourceIP;
};
APL:
import ultra.JSON_EXAMPLE.ULTRA_JSON_EXAMPLE;
consume {
//Item 1
itemUDR item1 = udrCreate(itemUDR);
item1.itId = 1;
item1.itDescription = "Item1";
item1.itMisc2 = listCreate(string);
listAdd(item1.itMisc2, "abc");
listAdd(item1.itMisc2, "def");
listAdd(item1.itMisc2, "ghi");
//Item2
itemUDR item2 = udrCreate(itemUDR);
item2.itId = 1;
item2.itDescription = "Item2";
item2.itMisc1 = "abc";
//Transaction1
transactionUDR transaction1 = udrCreate(transactionUDR);
transaction1.trId = 1;
transaction1.trDescription = "Transaction1";
transaction1.amount = 999.99;
transaction1.trDate = dateCreateNowMilliseconds();
transaction1.trItems = mapCreate(string, itemUDR);
mapSet(transaction1.trItems, "item1Key",item1);
mapSet(transaction1.trItems, "item2Key",item1);
transaction1.trProcessed = true;
transaction1.trSourceIP = ipLocalHost();
//Encode with JSON
string json;
json = jsonEncodeUdr(transaction1);
bytearray ba;
strToBA(ba, json);
debug("Encoded JSON (" + baSize(ba) + "bytes):\n" + json + "\n" );
//Decode from JSON
transactionUDR transactionIn = udrCreate(transactionUDR);
jsonDecodeUdr(json, transactionIn);
debug("Decoded JSON:\n" + transactionIn);
jsonParse
This function decodes a JSON formatted string to an any.
any jsonParse(string jsonString)
| Parameter | Description |
|---|---|
| The JSON string to decode |
Returns | any |
Example - Decoding JSON
consume {
// Define json with a multi-line string literal
string json = """
{
"menu": {
"header": "Document Viewer",
"items": [
{"id": "Open"},
{"id": "OpenNew", "label": "Open New"},
null,
{"id": "ZoomIn", "label": "Zoom In"},
{"id": "ZoomOut", "label": "Zoom Out"},
{"id": "OriginalView", "label": "Original View"}
]
}
}
""";
// Parse the json to get an object
any obj = jsonParse(json);
debug(obj);
// Access the object values as fields
for (any item : obj.menu.items) {
if (item != null) {
debug("label for " + item.id + " is " + item.label);
}
}