Dela via


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

  1. Skapa lösningen JsonSerialization.sln enligt beskrivningen i Skapa Windows Communication Foundation-exempel.

  2. Kör det resulterande konsolprogrammet.