C# 如何判断JSON对象是否为数组?

C# 如何判断JSON对象是否为数组?,c#,.net,xml,json,json.net,C#,.net,Xml,Json,Json.net,我已经使用JSON.NET中的.ToJSON()将XML转换为JSON 这会将具有2个或更多xml元素的内容转换为数组,而单个元素则不是 <trendstats> <paramFile version=\"1.0\" createdBy=\"PowerStats v1.0\" test=\"ohoh\"> </paramFile> </trendstats> 而: <trendstats>

我已经使用JSON.NET中的.ToJSON()将XML转换为JSON

这会将具有2个或更多xml元素的内容转换为数组,而单个元素则不是

<trendstats>
        <paramFile version=\"1.0\" createdBy=\"PowerStats v1.0\" test=\"ohoh\">
        </paramFile>
</trendstats>
而:

<trendstats>
        <paramFile version=\"1.0\" createdBy=\"PowerStats v1.0\" test=\"ohoh\">
        </paramFile>
        <paramFile version=\"1.0\" createdBy=\"PowerStats v1.0\" test=\"ohoh\">
        </paramFile>
</trendstats>

如何区分它们?

这演示了如何告诉JSON.NET强制xml元素始终生成数组。这样,您就不必猜测它是什么类型的。

因此,在我看来,您有两种选择:

  • 找出paramFile中有多少个元素。我忍不住想知道它是否有.Length而不是.Length(case)。这表明它确实如此
  • 按照rdodev的建议,通过修改xml来强制它成为一个或另一个
  • 在c#中强制它变成一个或另一个-尽管当你这样做并弄清楚它给你带来了什么样的错误时,你将有一个可以处理的测试

  • 我不是C#程序员,但这个问题引起了我的兴趣。

    我使用的是JSON.NET,我没有长度属性。JToken token=JObject.Parse(json);然后使用标记[“.”。长度不存在。明白了。搜索“attributetoforce”它将解决数组或对象的问题。我仍然没有看到它,是不是遗漏了什么?在“attributetoforceasJSON数组”一节的第23行:
    Admin
    我对C#没有长度属性的断言有点困惑。。。如果是这样的话,这里发生了什么:对于其他可能觉得有用的人:除了本页上的答案外,还请参见@chris的相关问题,该问题解释了为什么会出现这种情况,并给出了处理这种情况的替代解决方案。
    <trendstats>
            <paramFile version=\"1.0\" createdBy=\"PowerStats v1.0\" test=\"ohoh\">
            </paramFile>
            <paramFile version=\"1.0\" createdBy=\"PowerStats v1.0\" test=\"ohoh\">
            </paramFile>
    </trendstats>
    
    "trendstats": {
        "paramFile": [ {