2016-02-06 23 views
7

Sorun şu var: Ben buDeserialize JSON

dynamic dyn = JObject.Parse(json); 
gibi Newtonsoft ile bu JSON Dosyası ayrıştırmak Eğer bu

{ 
    "Path": { 
     "FirstPath": "/1/2/text()" 
    } 
} 

gibi görünen bir json dosyası var

veya bu

dynamic dyn = JsonConvert.DeserializeObject(json); 

bu

gibi kullanılması gerekirse, dinamik bir nesne olsun
dyn.Path.FirstPath.Value 

Değerlerden nasıl kurtulabilirim? JSON'daki tüm nesneler bir ip olmaktan çıkıyor. Gerekmiyorsa her zaman ".Value" yazmayı istemiyorum.

cevap

11

Bunu Newtonsoft 8.0.2 kullanarak test ettim ve iyi çalışıyor.

 dynamic dyn = JObject.Parse(json); 

     string value = dyn.Path.FirstPath; 

Değer, /1/2/text() eşdeğer olmalıdır.

+0

Evet ama daha yakından bakarsanız, "value" öğesinin "Newtonsoft.Json.Linq.JValue" türündeki bir dize olmadığını görebilirsiniz. "Değer" alır ve bir dizeyi bekleyen bir yönteme iletirseniz, bir Özel Durum alırsınız. Sadece "value.Value" yazarsanız çalışır. – Shamshiel

+0

"var" ifadesini "string" ile değiştirin. Cevabımı güncelledim. –

İlgili konular