2016-03-08 74 views
3

我知道使用選擇標記功能來傳遞json路徑。例如:Newtonsoft從JSON路徑更新JObject?

JObject jObect = JObject.Parse("{some json string}"); 
JToken jToken = jObject.SelectToken("root.item[0].myProperty"); 

我在找什麼是一個簡單的方式來更新原始JObject在給定的JSON路徑?

jObject[jsonPath] = "My New Value" 

很明顯,這需要一個對象鍵而不是JSON路徑。謝謝。

+1

相關:參見[編輯JSON使用JSONPath(https://stackoverflow.com/questions/35799010/editing-json-using-jsonpath/35804255#35804255) – dbc

回答

3

Json的路徑(爲此事的XPath)用於得到從項目層次,而不是設置他們。你需要得到父對象使用JSON路徑然後設置屬性通過正常的手段。

var parent = jObject.SelectToken("root.item[0]"); 
parent["myProperty"] = "My New Value"; 
+0

很好的協議。我想我可以標記JSON路徑並將屬性名稱取出,因爲它應該始終是路徑中的最後一項。 – PMOrion