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?
我自己的测试表明情况确实如此,但如果不对内部结构有更深入的了解,我就无法开始猜测我需要测试的边缘情况。
我检查了代码评论,检查了源代码(但没有走得太远),查看了文档here,here和here以及任何相关问题GitHub回购here。
文档引用this article以获取有关JPath的信息,但它也没有明确指示。虽然它提到了这个JPath $..book[(@.length-1)]
返回"最后一本书",但至少暗示这些操作是对订单敏感的。