Converted a TreeView to a JSON format using dynamic keyword and also deserialized. The problem facing in constructing a treeview from a returned dynamic object, using NewtonSoft.Json
library.
[JsonConverter(typeof(TreeNodeConverter))]
public class SubTreeNode : TreeNode
{
public dynamic obj;
}
string str = JsonConvert.SerializeObject(treeView1.Nodes, Formatting.Indented);
dynamic obj = JsonConvert.DeserializeObject(str);
How do I properly parse the returned dynamic object and convert this to a treeview.
Code for constructing treeview:
subNode = new SubTreeNode();
subNode.Text = "RootNode";
subNode.obj = new ExpandoObject();
subNode.obj.Property1 = "Value1";
subNode.obj.Property2 = "Value2";
subNode.obj.Property3 = "Value3";
subNode.obj.Property4 = new ExpandoObject();
subNode.obj.Property4.Complex = "Complex Object";
treeView1.Nodes.Add(subNode);
subNode = new SubTreeNode();
subNode.Text = "Node1";
subNode.obj = new ExpandoObject();
subNode.obj.Property1 = "Value1";
subNode.obj.Property2 = "Value2";
subNode.obj.Property3 = "Value3";
subNode.obj.Property4 = new ExpandoObject();
subNode.obj.Property4.Complex = "Complex Object";
treeView1.Nodes[0].Nodes.Add(subNode);
subNode = new SubTreeNode();
subNode.Text = "Node11";
subNode.obj = new ExpandoObject();
subNode.obj.Property1 = "Value1";
subNode.obj.Property2 = "Value2";
subNode.obj.Property3 = "Value3";
subNode.obj.Property4 = new ExpandoObject();
subNode.obj.Property4.Complex = "Complex Object";
treeView1.Nodes[0].Nodes[0].Nodes.Add(subNode);
subNode = new SubTreeNode();
subNode.Text = "Node2";
subNode.obj = new ExpandoObject();
subNode.obj.Property1 = "Value1";
subNode.obj.Property2 = "Value2";
subNode.obj.Property3 = "Value3";
subNode.obj.Property4 = new ExpandoObject();
subNode.obj.Property4.Complex = "Complex Object";
treeView1.Nodes[0].Nodes.Add(subNode);
subNode = new SubTreeNode();
subNode.Text = "Node21";
subNode.obj = new ExpandoObject();
subNode.obj.Property1 = "Value1";
subNode.obj.Property2 = "Value2";
subNode.obj.Property3 = "Value3";
subNode.obj.Property4 = new ExpandoObject();
subNode.obj.Property4.Complex = "Complex Object";
treeView1.Nodes[0].Nodes[1].Nodes.Add(subNode);
JSON format:
[
"RootNode",
{
"Property1": "Value1",
"Property2": "Value2",
"Property3": "Value3",
"Property4": {
"Complex": "Complex Object"
}
},
[
"Node1",
{
"Property1": "Value1",
"Property2": "Value2",
"Property3": "Value3",
"Property4": {
"Complex": "Complex Object"
}
},
[
"Node11",
{
"Property1": "Value1",
"Property2": "Value2",
"Property3": "Value3",
"Property4": {
"Complex": "Complex Object"
}
}
],
"Node2",
{
"Property1": "Value1",
"Property2": "Value2",
"Property3": "Value3",
"Property4": {
"Complex": "Complex Object"
}
},
[
"Node21",
{
"Property1": "Value1",
"Property2": "Value2",
"Property3": "Value3",
"Property4": {
"Complex": "Complex Object"
}
}
]
]
]