DataContractJsonSerializer-Beispiel

In diesem Artikel wird das JsonSerialization-Beispiel beschrieben.

Hinweis

Dieses Beispiel gilt für DataContractJsonSerializer. Für die meisten Szenarien, bei denen es um die Serialisierung und Deserialisierung von JSON geht, empfehlen wir die APIs im System.Text.Json-Namespace.

DataContractJsonSerializer unterstützt dieselben Typen wie DataContractSerializer. Das JSON-Datenformat ist besonders beim Schreiben von Webanwendungen im Ajax-Stil (Asynchronous JavaScript and XML) nützlich. Die AJAX-Unterstützung in Windows Communication Foundation (WCF) ist für die Verwendung mit ASP.NET AJAX über das ScriptManager-Steuerelement optimiert. Beispiele für die Verwendung von Windows Communication Foundation (WCF) mit ASP.NET AJAX finden Sie in den AJAX-Beispielen.

Die Setupprozedur und die Buildanweisungen für dieses Beispiel befinden sich am Ende dieses Themas.

Das Beispiel verwendet einen Person-Datenvertrag, um die Serialisierung und Deserialisierung zu demonstrieren.

[DataContract]
class Person
{
    [DataMember]
    internal string name;

    [DataMember]
    internal int age;
}

Zum Serialisieren einer Instanz vom Typ Person zu JSON erstellen Sie zuerst das DataContractJsonSerializer und schreiben dann mit der WriteObject-Methode JSON-Daten in einen Stream.

Person p = new Person();
//Set up Person object...
MemoryStream stream1 = new MemoryStream();
DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(Person));
ser.WriteObject(stream1, p);

Der Arbeitsspeicherstream enthält gültige JSON-Daten.

{"age":42,"name":"John"}

Das Beispiel zeigt das Deserialisieren von JSON-Daten in ein Objekt. Anschließend spulen Sie den Stream zurück und rufen ReadObject auf.

Person p2 = (Person)ser.ReadObject(stream1);

Wenn Sie das p2-Objekt untersuchen, stellen Sie fest, dass die JSON-Daten ordnungsgemäß deserialisiert wurden.

So richten Sie das Beispiel ein, erstellen es und führen es aus

  1. Erstellen Sie die Projektmappe „JsonSerialization.sln“, wie in Building the Windows Communication Foundation Samplesbeschrieben.

  2. Führen Sie die dabei entstandene Konsolenanwendung aus.