DataContractJsonSerializer-exempel
I den här artikeln beskrivs JsonSerialization-exemplet.
Kommentar
Det här exemplet är för DataContractJsonSerializer. För de flesta scenarier som omfattar serialisering och deserialisering av JSON rekommenderar vi API:erna i namnområdet System.Text.Json.
DataContractJsonSerializer stöder samma typer som DataContractSerializer. JSON-dataformatet är särskilt användbart när du skriver webbprogram i Asynkron JavaScript- och XML-format (AJAX). AJAX-stöd i Windows Communication Foundation (WCF) är optimerat för användning med ASP.NET AJAX via ScriptManager-kontrollen. Exempel på hur du använder Windows Communication Foundation (WCF) med ASP.NET AJAX finns i AJAX-exempel.
Konfigurationsproceduren och bygginstruktionerna för det här exemplet finns i slutet av det här avsnittet.
Exemplet använder ett Person
datakontrakt för att demonstrera serialisering och deserialisering.
[DataContract]
class Person
{
[DataMember]
internal string name;
[DataMember]
internal int age;
}
Om du vill serialisera en instans av Person
typen till JSON skapar du den DataContractJsonSerializer första och använder WriteObject
metoden för att skriva JSON-data till en dataström.
Person p = new Person();
//Set up Person object...
MemoryStream stream1 = new MemoryStream();
DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(Person));
ser.WriteObject(stream1, p);
Minnesströmmen innehåller giltiga JSON-data.
{"age":42,"name":"John"}
Exemplet visar deserialisering från JSON-data till ett objekt. Du spolar sedan tillbaka strömmen och anropar ReadObject
.
Person p2 = (Person)ser.ReadObject(stream1);
Om du undersöker p2
objektet visas att JSON-data har deserialiserats korrekt.
Konfigurera genom att skapa och köra exemplet
Skapa lösningen JsonSerialization.sln enligt beskrivningen i Skapa Windows Communication Foundation-exempel.
Kör det resulterande konsolprogrammet.