Konvertieren von JSON-Zeichenfolge in C # -Objekt
Versuchen, zu konvertieren einen JSON-string in ein Objekt in C#. Mit einer wirklich einfachen test Fall:
JavaScriptSerializer json_serializer = new JavaScriptSerializer();
object routes_list = json_serializer.DeserializeObject("{ \"test\":\"some data\" }");
Das problem ist, dass routes_list wird nie gesetzt; es ist ein Undefiniertes Objekt. Irgendwelche Ideen?
InformationsquelleAutor der Frage Justin | 2011-01-06
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es sieht aus wie Sie versuchen, zu Deserialisieren, um eine raw-Objekt. Du könntest eine Klasse erstellen, repräsentiert das Objekt, das Sie konvertieren. Dies wäre sehr nützlich in Fällen, in denen Sie beschäftigen sich mit der größere Objekte oder JSON-Strings.
Zum Beispiel:
Dann Ihre Deserialisierung-code wäre:
Mehr Informationen finden Sie in diesem tutorial:
http://www.codeproject.com/Tips/79435/Deserialize-JSON-with-Csharp.aspx
InformationsquelleAutor der Antwort jmort253
Oder Sie können die Newtownsoft.Json-Bibliothek wie folgt:
Wo
T
ist Ihre Objekt-Typ, der passt zu deinen JSON-string.InformationsquelleAutor der Antwort tripletdad99
Werden Sie wahrscheinlich wollen nicht nur erklären, sondern routes_list als
object
geben. Es muss nicht ein .test Eigenschaft, so dass Sie wirklich nicht gehen, um ein schönes Objekt zurück. Dies ist einer jener Orte, wo Sie besser aufgehoben wäre, die Definition einer Klasse oder einem struct, oder nutzen Sie das Schlüsselwort dynamic.Wenn Sie wirklich wollen, diesen code zu arbeiten, wie Sie es haben, Sie müssen wissen,, dass das Objekt zurückgegeben DeserializeObject ist ein generisches dictionary string,object. Hier der code, um es so zu machen:
Wenn Sie möchten, verwenden Sie das dynamic-Schlüsselwort, Sie können Lesen, wie hier.
Wenn Sie deklarieren Sie eine Klasse oder Struktur, die Sie anrufen können Deserialisieren statt DeserializeObject etwa so:
InformationsquelleAutor der Antwort mattmc3
Verwendung von dynamischen Objekt mit JavaScriptSerializer.
InformationsquelleAutor der Antwort İbrahim Özbölük
Newtonsoft ist schneller als java-script-serializer. ... das hängt von der Newtonsoft NuGet-Paket, welches ist beliebter und besser als die Standard-serializer.
einer Zeile code-Lösung.
InformationsquelleAutor der Antwort MSTdev
Ist hier eine einfache Klasse, die ich zusammen gebastelt aus verschiedenen posts.... Es wurde getestet, für etwa 15 Minuten, aber scheint zu arbeiten, für meine Zwecke. Es nutzt
JavascriptSerializer
um die Arbeit zu tun, die verwiesen werden kann, in Ihrer app mit der info detaillierte in diesem Beitrag.Den code unten ausgeführt werden kann, in LinqPad um es zu testen, durch:
Eigenschaften"
"System.Web.Script.Serialisierung".
Hoffe, es hilft!
InformationsquelleAutor der Antwort Brad Parks
Können Sie erreicht Ihre Anforderung schnell und einfach mit Newtonsoft.Json-Bibliothek. Ich bin aufzuschreiben, die ein Beispiel unten haben Sie einen Blick hinein.
Klasse für den Typ des Objekts, die Sie erhalten:
Code:
dies ist eine sehr einfache Art und Weise zu analysieren, Ihre json.
InformationsquelleAutor der Antwort Mirza Danish Baig
fügen Sie diese ddl-Referenz zu Ihrem Projekt: System.Web.Extensions.dll
diesen namespace verwenden: mit System.Web.Script.Serialisierung;
InformationsquelleAutor der Antwort Thulasiram
Andere schnelle und einfache Methode zur semi-Automatisierung dieser Schritte ist:
Nun verwenden Sie code wie:
InformationsquelleAutor der Antwort Jason Hitchings
Konvertiert einen JSON-string in ein Objekt in C#. Mit unter-test-Fall.. es ist für mich gearbeitet. Hier "MenuInfo" ist mein C# - Klasse-Objekt.
InformationsquelleAutor der Antwort Bhaskar
Zuerst müssen Sie die include-Bibliothek wie:
InformationsquelleAutor der Antwort Muhammad Zahid