一尘不染

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

json

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

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

我想将option属性更新为,"Male"如果值为,"ML"并且"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");

我不知道怎么去的option是一个孩子value

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


阅读 391

收藏
2020-07-27

共1个答案

一尘不染

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

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();
2020-07-27