如何使用NewtonSoft更新JSON对象的属性

我有一个像这样的JSON字符串:

{ "code": "GENDER", "value": { "option": "ML" } } 

如果值为"ML" ,我想将option属性更新为"Male"如果值为"FM"我想将"Male"属性"Male"更新为"Female" "FM"

我已达到这一点,但我不确定如何继续:

 JArray contentobject = (JArray)JsonConvert.DeserializeObject(contentJSON); JObject voicgObj = contentobject.Children().FirstOrDefault(ce => ce["code"].ToString() == "GENDER") as JObject; JProperty voicgProp = voicgObj.Property("value"); 

我不知道如何获得value的孩子的选择。

提前致谢。 任何指针都会很棒。

您可以使用属性作为键来访问该对象:

 JObject obj = JObject.Parse(json); string gender = (string)obj["value"]["option"]; 

对于您的示例,请尝试:

 JObject obj = JObject.Parse(json); var val = obj["value"]; string option = (string)val["option"]; if (option == "ML") val["option"] = "Male"; if (option == "FM") val["option"] = "Female"; string result = obj.ToString(); 

另一种方法,最小的属性检索:

 var val = voicgObj["value"] as JObject; JProperty optionProp = val.Property("option"); string option = optionProp.Value.Value(); if (option == "ML") optionProp.Value = "Male"; else if (option == "FM") optionProp.Value = "Female";