2016-03-08 88 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