2014-04-04 7 views
23

Mam ciąg JSON tak:Jak zaktualizować właściwości obiektu JSON za pomocą NewtonSoft

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

chciałbym zaktualizować właściwość option do "Male" jeśli wartość jest "ML" i "Female" jeśli wartość jest "FM".

Mam na tym punkcie, ale jestem pewien, jak postępować:

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

Nie wiem, w jaki sposób dostać się do option który jest dzieckiem value.

Z góry dziękuję. Wszelkie wskazówki byłyby świetne.

Odpowiedz

30

Można uzyskać dostęp do obiektu za pomocą właściwości jako klucze:

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

Dla przykładu, spróbuj:

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

Dziękuję ltiong_sh .. You have made my day. – Pipe2Path

Powiązane problemy