2016-02-06 14 views
7

ho seguente problema: Ho un file JSON che assomiglia a questoDeserialize JSON con json.NET in C# dinamica

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

Se mi parse questo JSON-File con Newtonsoft come questo

dynamic dyn = JObject.Parse(json); 

o questo

dynamic dyn = JsonConvert.DeserializeObject(json); 

ottengo un oggetto dinamico che deve essere utilizzato in questo modo

dyn.Path.FirstPath.Value 

Come posso eliminare la roba Valore? Tutti i miei oggetti in JSON finiscono per essere una stringa. Non voglio scrivere sempre ".Value" alla fine se non è necessario.

risposta

11

Ho provato questo utilizzando Newtonsoft 8.0.2 e funziona correttamente.

 dynamic dyn = JObject.Parse(json); 

     string value = dyn.Path.FirstPath; 

Il valore deve corrispondere a /1/2/text().

+0

Sì, ma se si guarda più da vicino si può vedere che "valore" non è una stringa da Tipo "Newtonsoft.Json.Linq.JValue". Se prendi "valore" e lo passi a un Metodo che si aspetta una stringa otterrai un'eccezione. Funziona solo se scrivi "valore.Valore". – Shamshiel

+0

Sostituire quindi "var" con "string". Ho aggiornato la mia risposta. –

Problemi correlati