将JSON转换为Treeview

时间:2016-02-11 06:54:38

标签: c# .net json

使用动态关键字将TreeView转换为JSON格式并进行反序列化。使用[JsonConverter(typeof(TreeNodeConverter))] public class SubTreeNode : TreeNode { public dynamic obj; } string str = JsonConvert.SerializeObject(treeView1.Nodes, Formatting.Indented); dynamic obj = JsonConvert.DeserializeObject(str); 库从返回的动态对象构造树视图时遇到的问题。

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);

如何正确解析返回的动态对象并将其转换为树视图。

构建树视图的代码:

[
  "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"
        }
      }
    ]
  ]
]

JSON格式:

  <?php foreach ($this->header_model->getalldata() as $row) {
    $image_arr = explode("/", $row->image); 
    $image_name = end($image_arr);
    echo base_url().'images/'.$image_name;
 } ?> 

0 个答案:

没有答案