Version 1.0.0.13
https://www.dropbox.com/s/mx9c5l2ox3ni8h5/PRO_JSON%201.0.0.13.library?dl=0
Version 1.0.0.11
https://www.dropbox.com/s/ql4b4ehxghvrsvc/PRO_JSON%201.0.0.11.library?dl=0
This as an open source library to compose and parse JSON objects. For more informations about json, have a look at json.org. It is a popular language used as part of many other protocols, like REST.
The usage is simple. You can describe a JSON file with a special structure format, which then can be stored or loaded from or to a file. Actually instead of a file, you are also able to use an HTTP Client library or s.th. similar.
TYPE EXAMPLEJSONSTRUCT :
STRUCT
var1: JSONVAR;
var2: JSONVAR;
var3: JSONVAR;
obj: EXAMPLEJSONSTRUCT_1;
arrayobj: ARRAY[1..3] OF JSONVAR;
END_STRUCT
END_TYPE
PROGRAM ExampleJSON_PRG
VAR
LocalJSONObj: EXAMPLEJSONSTRUCT;
ComposeJSON: STRUCT_TO_JSON;
JSONString: STRING(1000);
NewJSONObj: EXAMPLEJSONSTRUCT;
ParseJSON: JSON_TO_STRUCT;
END_VAR
LocalJSONObj.var1.Boolean:= TRUE;
LocalJSONObj.var2.Number:= 34.8756;
LocalJSONObj.var3.CharString:= 'teststring';
LocalJSONObj.obj.var4.Number:= 22;
LocalJSONObj.obj.var5.AsString:= 'FALSE'; //JSONVAR will guess at type, in this case, boolean
LocalJSONObj.obj.var6.CharString:= 'qwer';
LocalJSONObj.obj.var7[1].Number:= 123.234;
LocalJSONObj.obj.var7[2].AsString:= '55.46'; //JSONVAR will guess at type, in this case, a number
LocalJSONObj.obj.var7[3].Number:= 985;
LocalJSONObj.arrayobj[1].Number:= 1;
LocalJSONObj.arrayobj[2].Number:= 2;
LocalJSONObj.arrayobj[3].Number:= 3;
//create a JSON string from local object
ComposeJSON(
JSONString:= ADR(JSONString),
JSONStringSize:= SIZEOF(JSONString),
JSONVars:= ADR(LocalJSONObj),
NumberOfVars:= SIZEOF(LocalJSONObj) / SIZEOF(JSONVAR)
);
//fill another local object with values from the created JSON string
ParseJSON(
Execute:= ComposeJSON.Done,
JSONString:= ADR(JSONString),
JSONStringSize:= SIZEOF(JSONString),
JSONVars:= ADR(NewJSONObj),
NumberOfVars:= SIZEOF(NewJSONObj) / SIZEOF(JSONVAR)
);