JSON example
execute ibeblock as begin SimpleJsonData = '{ "FirstObject" : { "IntValue" : 123456, "StringValue" : "First line" }, "SecondObject" : { "IntValue" : 654321, "StringValue" : "First line\nSecond line\nThird line" }, "ThirdObject" : { "NumValue" : 123.456, "Items" : [ 123, 123.123, null, "some \"string\"", false ] } }'; JsonRoot = ibec_json_Parse(SimpleJsonData); try Node = ibec_json_SelectNode(JsonRoot, 'SecondObject\StringValue', 0); -- case sensitive search if (Node is not null) then begin v = ibec_json_GetNodeValue(Node, TRUE); ibec_ShowMessage(v); end; -- Iterating arrays, using Json namespace functions and constants sOut = 'List of array values:' + ibec_CRLF() + '======================================'; ArrayNode = @Json.SelectNode(JsonRoot, 'thirdobject\items', @Json.SEARCH_IGNORE_CASE); -- case insensitive search if (ArrayNode is not null) then begin NodeType = @Json.NodeType(ArrayNode); if (NodeType = @Json.TYPE_ARRAY) then begin iCount = @Json.ChildCount(ArrayNode); for i = 0 to (iCount - 1) do begin ChildNode = @Json.SelectNode(ArrayNode, i, @Json.SEARCH_BY_INDEX); vValue = @Json.GetNodeValue(ChildNode, TRUE); s = ibec_IIF(vValue is null, '<NULL>', ibec_Cast(vValue, __typeString)); sOut .= ibec_CRLF() + 'Value ' + ibec_Cast(i, __typeString) + ': ' + s; end; ibec_ShowMessage(sOut); end; end; finally ibec_json_Free(JsonRoot); end end
See also:
Working with JSON data
back to top of page
<< IMAP example | IBEBlock | Accessing the input and return parameters when executing in a batch file >>