我正在使用Newtonsoft Json.Net的SelectTokens()
。
我试图从一个对象列表中选择值,其中每个对象都有一个自然键和一个值。
jobAsJObject.SelectTokens("$.SeparatedContexts[.ContextName='default']")
我无法理解这一点,因为我找到的所有示例都不包括根据子属性选择项目。
答案 0 :(得分:2)
可以在Querying JSON with JSONPath和JSONPath - XPath for JSON找到JSONPath查询的文档。除此之外,您还可以为具有特定属性值的子项筛选数组。语法是:
[?(@.PropertyName='PropertyValue')]
因此,要在名为'ContextName' : 'default'
的数组中选择属性为'SeparatedContexts'
的所有元素,请执行:
var tokens = jobAsJObject.SelectTokens("SeparatedContexts[?(@.ContextName == 'default')]");
当然,您可以随时添加Linq Where
子句:
var token = jobAsJObject.SelectTokens("SeparatedContexts[*]")
.Where(o => (string)o.SelectToken("ContextName") == "default");
工作fiddle。