Udostępnij za pośrednictwem


Przykład DataContractJsonSerializer

W tym artykule opisano przykład JsonSerialization.

Uwaga

Ten przykład dotyczy elementu DataContractJsonSerializer. W przypadku większości scenariuszy obejmujących serializowanie i deserializacji danych JSON zalecamy interfejsy API w przestrzeni nazw System.Text.Json.

DataContractJsonSerializer program obsługuje te same typy co DataContractSerializer. Format danych JSON jest szczególnie przydatny podczas pisania asynchronicznych aplikacji internetowych JavaScript i XML (AJAX). Obsługa AJAX w programie Windows Communication Foundation (WCF) jest zoptymalizowana pod kątem używania z ASP.NET AJAX za pomocą kontrolki ScriptManager. Przykłady używania programu Windows Communication Foundation (WCF) z ASP.NET AJAX można znaleźć w przykładach AJAX.

Procedura konfiguracji i instrukcje kompilacji dla tego przykładu znajdują się na końcu tego tematu.

W przykładzie użyto kontraktu Person danych w celu zademonstrowania serializacji i deserializacji.

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

    [DataMember]
    internal int age;
}

Aby serializować wystąpienie Person typu do formatu JSON, utwórz DataContractJsonSerializer pierwszy i użyj WriteObject metody do zapisania danych JSON do strumienia.

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

Strumień pamięci zawiera prawidłowe dane JSON.

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

W przykładzie pokazano deserializacji z danych JSON do obiektu. Następnie przewijasz strumień i wywołujesz metodę ReadObject.

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

p2 Badanie obiektu pokazuje, że dane JSON zostały poprawnie zdeserializowane.

Aby skonfigurować, skompiluj i uruchom przykład

  1. Skompiluj rozwiązanie JsonSerialization.sln zgodnie z opisem w temacie Building the Windows Communication Foundation Samples (Tworzenie przykładów programu Windows Communication Foundation).

  2. Uruchom wynikową aplikację konsolową.