Newtonsoft 从 JSON 路径更新 JObject?

PMO*_*ion 6 c# json.net jsonpath

我知道使用 select tokens 函数来传递 json 路径。例如:

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

我正在寻找的是一种在给定 JSON 路径上更新原始 JObject 的简单方法?

jObject[jsonPath] = "My New Value" 
Run Code Online (Sandbox Code Playgroud)

显然,这需要一个对象键而不是 JSON 路径。谢谢。

Jef*_*ado 5

Json 路径(以及与此相关的 xpath)用于从层次结构中获取项目,而不是设置它们。您需要使用 JSON 路径获取父对象,然后通过正常方式设置属性。

var parent = jObject.SelectToken("root.item[0]");
parent["myProperty"] = "My New Value";
Run Code Online (Sandbox Code Playgroud)

  • 在 newtonsoft.json 系统中有“替换”功能,可以直接设置令牌的值 (2认同)