如何使用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";