2014-04-04 25 views
23

我有一个JSON字符串,这样更新JSON对象的属性:如何使用NewtonSoft

{ 
    "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一个孩子。

在此先感谢。任何指针都会很棒。

回答

30

您可以通过使用属性键访问对象:

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

为了您例如,尝试:

JObject code = JObject.Parse(json); 
var val = code["value"]; 
string option = (string)val["option"]; 

if (option == "ML") 
    val["option"] = "Male"; 

if (option == "FM") 
    val["option"] = "Female"; 

string result = code.ToString(); 
+0

谢谢ltiong_sh ..你已经让我很快乐。 – Pipe2Path