使用 JsonTextReader 一次加载令牌 (.Load) 与使用 ReadFrom 加载整个 JSON 时,JsonPath 的工作方式不同。下面是一个例子: JSON: Path="[*].person" Method=SelectTokens(path)
[
{
"person": {
"personid": 123456
}
},
{
"person": {
"personid": 798
}
}
]
使用 .ReadFrom 时,它将返回正确的 2 个元素。如果我使用 .Load ,它将返回 0 个元素。但是,如果我将路径更改为“人”,.ReadFrom 返回 0 个元素,而 .Load 返回 2 个元素。
作为修复,我可以更改路径,以便将其删除到第一个“。” 即path = substring(path.index(".")+1); 但是,这感觉更像是一种黑客攻击,而不是适当的修复。当然,我还需要确保 JSON 是一个数组,但在我的大多数情况下,它会是一个数组。
所以最后,我正在尝试学习如何在一次加载令牌时将 JSON 路径与数组一起使用。有什么建议吗?