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