2014-04-04 25 views
52

ho questa stringa memorizzata nel mio database:Converti JSON String a JSON oggetto C#

str = "{ "context_name": { "lower_bound": "value", "upper_bound": "value", "values": [ "value1", "valueN" ] } }" 

Questa stringa è già in formato JSON ma voglio convertirlo in un jobject o JSON oggetto.

JObject json = new JObject(); 

Ho provato il json = (JObject)str; getto, ma non ha funzionato così come posso farlo?

risposta

113

JObject definisce metodo Parse per questo:

JObject json = JObject.Parse(str); 

Si potrebbe desiderare di fare riferimento a Json.NET documentation.

+0

Questa volontà converti in {string}, aggiungerà altre parentesi graffe alla tua stringa. –

13

Questo funziona

string str = "{ 'context_name': { 'lower_bound': 'value', 'pper_bound': 'value', 'values': [ 'value1', 'valueN' ] } }"; 
    JavaScriptSerializer j = new JavaScriptSerializer(); 
    object a = j.Deserialize(str, typeof(object)); 
+0

Err - Nessun sovraccarico per il metodo 'Deserialize' prende 2 argomenti ... –

7

c'è un modo interessante per achive un altro obiettivo che è quello di avere una base fortemente tipo di classe in JSON con strumenti molto potenti che ho usato qualche giorno fa per la prima volta a tradurre TradeDoubler JSON risultato in classi

È uno strumento semplice: copia il tuo incolla di codice JSON e in pochi secondi you will have a strongly typed class json oriented. In questo modo userete queste classi che sono più potenti e semplici da usare.

spero che può aiutare a

+0

Proprio quello di cui avevo bisogno! quindi non devo definire una struttura di classe complessa da qualcosa creato in javascript – NicolasZ

+0

mentre questo non risponde alla domanda. questo è un enorme strumento per risparmiare tempo. –

+0

Grazie mille :) Sono molto felice che questa risposta sia utile – makemoney2010

7

se non si vuole o bisogno di un oggetto prova tipizzato:

using Newtonsoft.Json; 
// ... 
dynamic json = JsonConvert.DeserializeObject(str); 

o provare per un oggetto prova tipizzato:

Foo json = JsonConvert.DeserializeObject<Foo>(str)