Json.NET SelectTokens是否保证订单?

时间:2016-10-26 23:19:20

标签: json.net jsonpath

Json.NET的JToken.SelectTokens方法是否保证订单?

E.g。鉴于此数据:

{
    "items": [
        { "name": "foo" },
        { "name": "bar" }
    ]
}

此表达式:obj.SelectTokens("items..name")是否始终返回['foo', 'bar']

具体来说,我对多个阵列中的预期行为感兴趣,例如:

{
    "items": [
        { "name": "foo" },
        { "name": "bar" }
    ]
}

{
    "values": [
        { "quantity": 9 },
        { "quantity": 42 }
    ]
}

我可以使用obj.SelectTokens("items..name")obj.SelectTokens("values..quantity")来关联" foo"用9和" bar"用42?

我自己的测试表明情况确实如此,但如果不对内部结构有更深入的了解,我就无法开始猜测我需要测试的边缘情况。

我检查了代码评论,检查了源代码(但没有走得太远),查看了文档hereherehere以及任何相关问题GitHub回购here

文档引用this article以获取有关JPath的信息,但它也没有明确指示。虽然它提到了这个JPath $..book[(@.length-1)]返回"最后一本书",但至少暗示这些操作是对订单敏感的。

0 个答案:

没有答案