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
Skompiluj rozwiązanie JsonSerialization.sln zgodnie z opisem w temacie Building the Windows Communication Foundation Samples (Tworzenie przykładów programu Windows Communication Foundation).
Uruchom wynikową aplikację konsolową.