using Newtonsoft.Json.Linq; using System.Windows.Forms; using System.Collections.Generic; //namespace LrGetToken //{ // public class NodeAdder // { // // 用于存储列名顺序 // public List nodeNames = new List(); // public void AddNode(JToken token, TreeNodeCollection nodes) // { // // 存储正常的节点 // List normalNodes = new List(); // // 存储值为0或null的节点 // List specialNodes = new List(); // foreach (JProperty property in token.Children()) // { // // 创建新的节点 // TreeNode node = new TreeNode(property.Name); // // 确保节点名称不重复 // if (!nodes.ContainsKey(node.Text)) // { // // 添加节点 // TreeNode valueNode = node.Nodes.Add("Value: " + property.Value.ToString()); // // 判断值是否为0或null // if (property.Value.Type == JTokenType.Null || property.Value.ToString() == "0") // { // specialNodes.Add(node); // } // else // { // normalNodes.Add(node); // } // // 将节点名称添加到顺序列表 // nodeNames.Add(node.Text); // // 递归处理嵌套的子节点 // AddNode(property.Value, node.Nodes); // } // } // // 先添加正常的节点 // foreach (TreeNode normalNode in normalNodes) // { // nodes.Add(normalNode); // } // // 最后添加值为0或null的节点 // foreach (TreeNode specialNode in specialNodes) // { // nodes.Add(specialNode); // } // } // } //} namespace LrGetToken { public class NodeAdder { public void AddNode(JToken token, TreeNodeCollection nodes) { // 存储正常的节点 List normalNodes = new List(); // 存储值为0或null的节点 List specialNodes = new List(); foreach (JProperty property in token.Children()) { // 创建新的节点 TreeNode node = new TreeNode(property.Name); // 确保节点名称不重复 if (!nodes.ContainsKey(node.Text)) { TreeNode valueNode = node.Nodes.Add("Value: " + property.Value.ToString()); // 判断值是否为0或null if (property.Value.Type == JTokenType.Null || property.Value.ToString() == "0") { // 如果是0或null,将节点添加到 specialNodes specialNodes.Add(node); } else { // 否则添加到 normalNodes normalNodes.Add(node); } // 递归处理嵌套的子节点 AddNode(property.Value, node.Nodes); } } // 先添加正常的节点 foreach (TreeNode normalNode in normalNodes) { nodes.Add(normalNode); } // 最后添加值为0或null的节点 foreach (TreeNode specialNode in specialNodes) { nodes.Add(specialNode); } } } }