Yann,
Wow, you are a good teacher!!!, at the beginning i was feeling dumb realizing what i was actually doing, but i think i have a better understanding now.
But, for the capx you sent, in the third method, if you check the debugger you would see its only adding the first property object and not the second, also, if you don't mind i would appreciate you shedding light also on retriving values by using the json.value expression:
i expect setting text to json.value(0,"path","to","an","object") to spilll out all the contents of the object, or adding a key after the object to return the value of the key, but i keep getting undefined, when i attempt this
Dasat
If you run the capx in the debugger (Ctrl+F5) you should see that:
{
"name": "dasat",
"properties": {
"property_name": "thermal"
}
}[/code:1zc6eo4u]
which is not nothing, but yeah, not what you want for now
Let's comment what you did line by line so I explain a few things:
[code:1zc6eo4u]
+ System: on start of layout
// in javascript it could be represented as: var root = {};
-> JSON: new Object at root@
+ [empty]
// here you are redoing: root = {}; which basically discard the first object
-> JSON: new Object at root@
// here current and root are the same, so you are doing: root["name"] = "Dasat";
-> JSON: set "Dasat" at current@"name"
// you set the current path to the current path, so nothing changes
-> JSON: Set Current Path to current@
// here you do root["properties"] = [];
-> JSON: new Array at currentapg@properties
// here that make sens, now current is root["properties"]
-> JSON: Set Current Path to current@"properties"
// you do root["properties"] = {}; so your array gets discarded
-> JSON: new Object at current@
// root["properties"]["property_name"] = "electrical"
-> JSON: set "electrical" at current@"property_name"
// root["properties"]["property_unit"] = "wareva"
-> JSON: new "wareva" at current@"property_unit"
// here you basically discard the object at root["properties"] and replace it by an empty one
-> JSON: new Object at current@
// root["properties"]["property_name"] = "thermal"
-> JSON: new "thermal" at current@"property_name"
[/code:1zc6eo4u]
To summurize I'll write in javascript only what you did
[code:1zc6eo4u]
var root = {};
root = {}; //which basically discard the first object
root["name"] = "Dasat";
root["properties"] = [];
root["properties"] = {}; // discard the array
root["properties"]["property_name"] = "electrical";
root["properties"]["property_unit"] = "wareva";
root["properties"] = {}; // discard the previous object
root["properties"]["property_name"] = "thermal";
[/code:1zc6eo4u]
So here the result showing in the debugger makes sens
Let's travel from javascript back to the JSON plugin
What you want to generate is:
I'm trying to have something like let's build a basic addition and multiplication table, like what we learnt whe we were young (but yeah, 0-based for simplicity):
[code:1zc6eo4u]
[
> {"name": "dasat,
> "properties": [
> {"property_name": "conductivity", "property_unit": "wareva" },
> {"property_name": "restitivity", "property_unit": "ohmmeter"}
> ]
},
{"name": "dasat2,
"properties":[
> {"property_name": "conductivity2", "property_unit": "wareva2" }
> {"property_name": "restitivity2", "property_unit": "ohmmeter2"}
> ]
}
]
[/code:1zc6eo4u]
in javascript you can do it like that:
[code:1zc6eo4u]
var root = [];
root[0] = {};
root[0]["name"] = "Dasat";
root[0]["properties"] = [];
root[0]["properties"][0] = {};
root[0]["properties"][0]["property_name"] = "conductivity";
root[0]["properties"][0]["property_unit"] = "wareva";
root[0]["properties"][1] = {};
root[0]["properties"][1]["property_name"] = "restitivity";
root[0]["properties"][1]["property_unit"] = "ohmmeter";
root[0] = {};
root[1]["name"] = "Dasat2";
root[1]["properties"] = [];
root[1]["properties"][0] = {};
root[1]["properties"][0]["property_name"] = "conductivity2";
root[1]["properties"][0]["property_unit"] = "wareva2";
root[1]["properties"][1] = {};
root[1]["properties"][1]["property_name"] = "restitivity2";
root[1]["properties"][1]["property_unit"] = "ohmmeter2";
[/code:1zc6eo4u]
Some equivalents with the JSON plugin would be:
[url]https://dl.dropboxusercontent.com/u/23551572/C2/JSONDasat.capx[/url]