为什么JSON路径表达式" *"不会产生任何结果(Json.NET)

时间:2016-05-01 08:35:17

标签: c# json json.net

我正在使用Json.NET。对于以下JSON:

var token = JToken.Parse("[\"v\"]");

我运行两个表达式:

var notFound = token.SelectTokens("*");
var found = token.SelectTokens("[*]");

出于某种原因,第一个没有找到任何令牌,但第二个令牌。我已使用this在线工具检查了该行为,并证明"*"在这种情况下的行为应与"[*]"相同。

Json.NET是.NET中最受欢迎和使用最广泛的框架。因此,我认为 这种行为的某种原因......什么?

2 个答案:

答案 0 :(得分:0)

试试/*

如果JSONPath应该为XPath建模,那么您需要指定相对于根的内容 - 我将上面的代码解释为根对象下的任何类型的元素 - 也就是说,它会在'之下找到字符串。数组。

答案 1 :(得分:0)

这不是正则表达式,而是Json路径。 所以试试docs

$..*

它找到更多的标记 - 2而不是一个(数组及其元素)