我使用的是Newtonsoft Json.Net的SelectTokens()
。我正试图从对象列表中选择值,其中每个对象都有一个自然键和一个值。
jobAsJObject.SelectTokens("$.SeparatedContexts[.ContextName='default']")
我不明白,因为我找到的例子中没有一个涉及到根据子属性选择项。
JSONPath查询文档可以在JSONPath和JSONPath - XPath for JSON查询JSON中找到。除此之外,您还可以筛选具有特定属性值的子数组。语法为:
[?(@.PropertyName='PropertyValue')]
因此,要在名为'SeparatedContexts'
的数组中选择属性为'ContextName' : 'default'
的所有元素,执行:
var tokens = jobAsJObject.SelectTokens("SeparatedContexts[?(@.ContextName == 'default')]");
当然,您总是可以附加一个Linq Where
子句来代替:
var token = jobAsJObject.SelectTokens("SeparatedContexts[*]")
.Where(o => (string)o.SelectToken("ContextName") == "default");
工作小提琴。