It turns out that you can build JSON structures without ever calling the JSONBuilder function block directly. Instead, create a pointer to JSON.JSONData and invoke the necessary methods on its dereference. The parent object has a parent index of -1 (and an index of 0). EVERY other item (including keys, values, empty arrays and sub-objects) created by the setX methods needs the index to increase by 1. Then use the JSONByteArrayWriter FB to generate your JSON string
It turns out that you can build JSON structures without ever calling the JSONBuilder function block directly. Instead, create a pointer to JSON.JSONData and invoke the necessary methods on its dereference. The parent object has a parent index of -1 (and an index of 0). EVERY other item (including keys, values, empty arrays and sub-objects) created by the setX methods needs the index to increase by 1.
I have recently used this example from @Brine, and it worked. Thanks
I have been trying to set an array value to a JSON structure of this form: {"key": [1,2,3,4]} While I have been able to create the key and set its value to an empty array, I've not had any luck in putting any value in that array. objindex:= fb_JBuilder.SetKeyWithArray("Key6", diParentIndex := diRootIndex); objindex2:= fb_JBuilder.SetValue(value:= iValue2, diParentIndex:= objindex); iValue2: ARRAY[0..3] OF INT:= [1,2,3,4]; The two lines of code above produce {"key6": []} . The second line essentially...
Hello @florian, Could you please help with how to set an array value? I've been trying to use the with the setKeyWithArray method which creates the key with an empty array value. But I have been unable to set items in this array? objindex:= fb_JBuilder.SetKeyWithArray("Key6", diParentIndex := diRootIndex); objindex2:= fb_JBuilder.SetValue(value:= iValue2, diParentIndex:= objindexx); //iValue: array[0..n] of int; Best regards
I am having the same problem right now. Could you please share more information if you were able to solve the problem?
I'm having this problem with my Modbus TCP master program: a successful connection is made to the server, to be used to read a number of input registers in sequence by using the ModbusFB.ClientRequestReadInputRegisters function block. But although the xExecute input is being controlled by a clock signal which turns it ON and OFF cyclically, no ModbusTCP request has ever been sent onto the physical ethernet medium. At the same time, I get no Error or Exception messages from any ModbusTCP function...
I'm having this problem with my Modbus TCP master program: a successful connection is made to the server, to be used to read a number of input registers in sequence by using the ModbusFB.ClientRequestReadInputRegisters function block. But although the xExecute input is being controlled by a clock signal which turns it ON and OFF cyclically, no ModbusTCP request has ever been sent onto the physical ethernet medium. At the same time, I get no Error or Exception messages from any ModbusTCP function...