2014-04-04 18 views
23

ho una stringa JSON come questo:Come aggiornare una proprietà di un oggetto JSON utilizzando NewtonSoft

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

Vorrei aggiornare la proprietà option-"Male" se il valore è "ML" e "Female" se il valore è "FM".

ho arrivati ​​a questo punto, ma sono sicuri di come procedere:

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

non so come raggiungere il option, che è un figlio di value.

Grazie in anticipo. Qualsiasi suggerimento sarebbe grandioso.

risposta

30

Si può accedere l'oggetto utilizzando le proprietà come chiavi:

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

Per esempio, provate:

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

Grazie ltiong_sh .. Hai fatto la mia giornata. – Pipe2Path

Problemi correlati