我知道我可以像这样进行通配符搜索:
jObject.SelectTokens("items.*.name");
我在运行时构建搜索路径,它不是硬编码的。在某些情况下,我需要搜索一些更复杂的东西,比如“q*”,这样会导致搜索路径为:
jObject.SelectTokens("items.q*.name");
Json.net 似乎不支持这一点,所以在这种情况下,我将搜索字符串更改为“items.*.name”,然后使用带有正则表达式的 Where 子句过滤到与通配符匹配的那些,所以,正则表达式可能是:
^items\.q.*\.name$
当然,这是一个简单的例子,但路径上可能有多个 *,也可能是“.*v2.”等。
如果有某种方法可以在 json.net 中本地执行此操作(或执行正则表达式的更好方法),我可以摆脱正则表达式匹配,因为这是分析器所说的费用所在。