使用带有 LINQ 的 JSON.NET 计算我的 JSON 文件中的子项数

Posted

技术标签:

【中文标题】使用带有 LINQ 的 JSON.NET 计算我的 JSON 文件中的子项数【英文标题】:Count the number of children in my JSON file using JSON.NET with LINQ 【发布时间】:2013-12-05 06:42:50 【问题描述】:

我有一个 xml:

string xml = "<?xml .... />" +
    "<root>" +
        "<paramFile version=1.0>" +
            "<stuff />" +
        "</paramFile>" +
        "<paramFile version=1.0>" +
            "<stuff />" +
        "</paramFile>" +
     "</root>";

然后我转换成 JSON 并解析它:

    XmlDocument doc = new XmlDocument();
    doc.LoadXml(xml);
    string jsonText = JsonConvert.SerializeXmlNode(doc).Replace("\"@", "\"");
    JToken token = JObject.Parse(jsonText);

如何获取 JSON 中 paramFiles 的数量?

【问题讨论】:

我可以问一下,为什么需要将 XML 转换为 JSON?您是否将其作为 JSON 存储在某处,输出等? XML 是系统中的遗留系统,我将所有内容都转换为 JSON,最终将没有 XML。但仍然需要知道如何计算元素? 【参考方案1】:

这样的方法有效(我发现最简单)。主要取决于你的树有多深。

token["root"]["paramFile"].Count();

【讨论】:

确保您有对 System.Linq 的引用;

以上是关于使用带有 LINQ 的 JSON.NET 计算我的 JSON 文件中的子项数的主要内容,如果未能解决你的问题,请参考以下文章

.NET(C#) Json.Net(newtonsoft)使用LINQ查询JSON数据

如何在 LINQ 中计算累积和?

JSON.NET与LINQ序列化示例教程

如何使用 System.Linq.Dynamic 检查 JSON 对象是不是与谓词匹配

使用JSON.net进行反序列化时出错

在带有 Linq 的实体框架中使用 LIKE "%%%"? [复制]