C# — Load a TreeView from JSON, Save a TreeView to JSON
Here are a few snippets of code I needed for internal tools…
TreeView –> JSON
private void recurseTree(TreeNode treeNode, Chilkat.JsonObject json) { string tag; if (treeNode.Tag == null) { tag = treeNode.Name; } else { tag = treeNode.Tag.ToString(); if (tag.Length == 0) { tag = treeNode.Name; } } int numChildren = treeNode.Nodes.Count; if (numChildren == 0) { json.AppendString(tag, treeNode.Text); return; } Chilkat.JsonObject jObj = json.AppendObject(tag); foreach (TreeNode tn in treeNode.Nodes) { recurseTree(tn,jObj); } } private void btnTreeViewToJson_Click(object sender, EventArgs e) { // Convert treeview1 to JSON. Chilkat.JsonObject json = new Chilkat.JsonObject(); TreeNodeCollection nodes = treeView1.Nodes; foreach (TreeNode n in nodes) { recurseTree(n,json); } json.EmitCompact = false; textBox1.Text = json.Emit(); }
JSON –> TreeView
void buildTreeView(TreeNode node, Chilkat.JsonObject json) { int i; int n = json.Size; for (i = 0; i < n; i++) { if (json.TypeAt(i) == 3) { TreeNode tn = new TreeNode(); tn.Tag = json.NameAt(i); tn.Name = json.NameAt(i); tn.Text = json.NameAt(i); node.Nodes.Add(tn); Chilkat.JsonObject jObj = json.ObjectAt(i); buildTreeView(tn, jObj); } else { // This is a string. TreeNode tn = new TreeNode(); tn.Tag = json.NameAt(i); tn.Name = json.NameAt(i); tn.Text = json.StringAt(i); node.Nodes.Add(tn); } } } private void loadTreeView() { treeView1.BeginUpdate(); Chilkat.JsonObject json = new Chilkat.JsonObject(); json.LoadFile("c:/ck2000/appData/builder/treeView.json"); // recursively add the JSON nodes to the treeview. TreeNode tn = new TreeNode(); tn.Tag = json.NameAt(0); tn.Name = json.NameAt(0); tn.Text = json.NameAt(0); treeView1.Nodes.Add(tn); Chilkat.JsonObject jObj = json.ObjectAt(0); buildTreeView(tn, jObj); treeView1.EndUpdate(); } treeView1.Nodes.Clear(); loadTreeView(); ...
admin
0
Tags :