After upgrading to ignition 8.3, something broke with the system.util.jsonEncode function.
If the call is made from the webdev module, some key-value pair will changes to dictionaries?
system.util.jsonEncode called from WebDev:
system.util.jsonEncode called from project script or message handler:
Webdev in 8.1 would generate the same output. (the desired output)
Am I missing something?
Thanks
What is the object you are encoding? Can you add some debug logging e.g. print type(value)
before passing value
to system.util.jsonEncode
?
Sure can,
Type is dict:

here the code in webdev:
the output : is a key that contains an array.
each item in the array:
What's the type of the thing in a message handler? What are the contents of the dict? Can you compare them?
The behavior of jsonEncode doesn't change based on where you call it from. The only difference here can be that you are passing slightly different objects to it somehow.
the sendRequest sends back a list
this is the message handler:
the commented line, that what it was before I change to 8.3 to get my result.
now if I encode here, no problem.
modified webdev part, this gives me what 8.1 did.
What kinds of things are in the res
list?
It seems that whatever they are, they might not be getting serialized/deserialized when returned by sendRequest
the same was as in 8.1, or may be entirely different now.
replicated in simple projects
test_remoteGtw.zip (3.1 KB)
test_caller.zip (4.7 KB)
@paul-griffith do you recognize that dataType/value pair? Is this maybe some protobuf RPC thing?
remark: I did change from java serialization to protobuf in gateway settings.