我使用Newtonsoft Json.Net的SelectTokens()
。 我試圖從對象列表中選擇值,其中每個對象都有一個自然鍵和一個值。如何使用JPath選擇具有指定值的子項的收集項目?
jobAsJObject.SelectTokens("$.SeparatedContexts[.ContextName='default']")
我無法弄清楚,因爲我發現的例子都沒有涵蓋基於子屬性選擇項目。
我使用Newtonsoft Json.Net的SelectTokens()
。 我試圖從對象列表中選擇值,其中每個對象都有一個自然鍵和一個值。如何使用JPath選擇具有指定值的子項的收集項目?
jobAsJObject.SelectTokens("$.SeparatedContexts[.ContextName='default']")
我無法弄清楚,因爲我發現的例子都沒有涵蓋基於子屬性選擇項目。
有關JSONPath查詢的文檔可以在Querying JSON with JSONPath和JSONPath - XPath for 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");
工作fiddle。
「?」 char ...我看到...非常感謝。 – doker
或者,您可以推薦一些simmilar庫來選擇動態對象或JSON字符串中的元素嗎? – doker