private void InitializeData() { var text = System.IO.File.ReadAllText("D:/temp/transform.json"); var node = JToken.Parse(text); var root = new JsonConfigNode("root", null, JTokenType.Object); WalkNode(node, root); _rootNode = root; }
public void WalkNode(JToken node, JsonConfigNode currentNode) { if (node.Type == JTokenType.Object) { foreach (var child in node.Children <JToken>()) { WalkNode(child, currentNode); } } else if (node.Type == JTokenType.Array) { var i = 0; foreach (var child in node.Children()) { var item = new JsonConfigNode($"[{i}]", null, child.Type); currentNode.Children.Add(item); WalkNode(child, item); i++; } } else if (node.Type == JTokenType.Property) { var c = node.Children()[0]; var prop = new JsonConfigNode(((JProperty)node).Name, null, JTokenType.Object); currentNode.Children.Add(prop); var list = new List <JToken>(); foreach (var child in node.Children()) { WalkNode(child, prop); } } else { currentNode.Value = (((Newtonsoft.Json.Linq.JValue)node).Value); } }