This library is not able to deserialize JSON containing objects in which:
- one property is set to an empty object
- at least one other property exists, set to something like a number or a string
Given this JSON (call it "JSON A"):
{
"foo": {
"propA": {
"nestedA": 1
},
"propB": 1
}
}
And this JSON (call it "JSON B"):
{
"foo": {
"propA": {},
"propB": 1
}
}
Expected results
Both JSON A and B are valid, and JKI JSON should deserialize both without issue using Unflatten From JSON String.vi.
Actual results
Unflatten From JSON String.vi can deserialize JSON A without issue, but returns an error trying to deserialize JSON B:
Error 1527 occurred at Flattened String To Variant in Set Data Name__ogtk.vi->JKI JSON Serialization.lvlib:JSON Deserializer.lvclass:Adapt To Type.vi:3110001->JKI JSON Serialization.lvlib:JSON Deserializer.lvclass:Adapt To Type.vi:3110002->JKI JSON Serialization.lvlib:JSON Deserializer.lvclass:Unflatten From String.vi:2180001->JKI JSON Serialization.lvlib:Unflatten From JSON String.vi:4940001->Run.vi
Possible reason(s):
LabVIEW: Attempted to read flattened data of a LabVIEW class that is not currently loaded into LabVIEW.
Steps to reproduce
-
Save this LabVIEW as a VI in some directory (call it Run.vi):

-
Create a file example.json in the same directory.
-
Copy JSON A into example.json and save.
-
Execute Run.vi. There should be no error.
-
Replace the contents of example.json with JSON B and save.
-
Execute Run.vi. You should see Error Out display error 1527.
This library is not able to deserialize JSON containing objects in which:
Given this JSON (call it "JSON A"):
{ "foo": { "propA": { "nestedA": 1 }, "propB": 1 } }And this JSON (call it "JSON B"):
{ "foo": { "propA": {}, "propB": 1 } }Expected results
Both JSON A and B are valid, and JKI JSON should deserialize both without issue using
Unflatten From JSON String.vi.Actual results
Unflatten From JSON String.vican deserialize JSON A without issue, but returns an error trying to deserialize JSON B:Steps to reproduce
Save this LabVIEW as a VI in some directory (call it
Run.vi):Create a file
example.jsonin the same directory.Copy JSON A into
example.jsonand save.Execute
Run.vi. There should be no error.Replace the contents of
example.jsonwith JSON B and save.Execute
Run.vi. You should seeError Outdisplay error 1527.