2014-04-04 24 views
52

ich diesen String in meiner Datenbank gespeichert haben:Convert JSON String zu JSON-Objekt C#

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

Diese Saite ist bereits im JSON-Format, aber ich möchte es in ein Objekt JObject oder JSON konvertieren.

JObject json = new JObject(); 

Ich versuchte, die json = (JObject)str; Besetzung, aber es funktioniert nicht so, wie ich es tun kann?

Antwort

113

JObject definiert Methode Parse hierfür:

JObject json = JObject.Parse(str); 

Sie könnten auf Json.NET documentation beziehen möchten.

+0

Dieser Wille In {string} konvertieren, fügt der Zeichenfolge zusätzliche geschweifte Klammern hinzu. –

13

Dies funktioniert

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 - Keine Überladung für Methode 'Deserialize' benötigt 2 Argumente ... –

7

gibt es eine interessante Möglichkeit, ein weiteres Tor achive, die eine stark Typklasse Basis auf json mit einem sehr leistungsfähigen Werkzeugen haben, ist, dass ich vor wenigen Tagen erstmals verwendet TradeDoubler json zu übersetzen Ergebnis in Klassen

Ist ein einfaches Werkzeug: Kopieren Sie Ihre Json-Source-Paste und in wenigen Sekunden you will have a strongly typed class json oriented. Auf diese Weise werden Sie diese Klassen verwenden, die leistungsfähiger und einfach zu verwenden ist.

hoffe ich, dass Sie

helfen kann
+0

Genau was ich brauchte! also muss ich keine komplexe Klassenstruktur von etwas definieren, das in Javascript – NicolasZ

+0

erstellt wird, während dies die Frage nicht beantwortet. Dies ist ein enormes zeitsparendes Werkzeug. –

+0

Vielen Dank :) Ich bin sehr froh, dass diese Antwort nützlich ist – makemoney2010

7

, wenn Sie eine typisierte Objekt versuchen wollen oder müssen nicht:

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

oder für eine typisierte Objekt try versuchen:

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