Delen via


Voorbeeld van DataContractJsonSerializer

In dit artikel wordt het JsonSerialization-voorbeeld beschreven.

Notitie

Dit voorbeeld is bedoeld voor DataContractJsonSerializer. Voor de meeste scenario's waarbij JSON wordt geserialiseerd en gedeserialiseerd, raden we de API's aan in de naamruimte System.Text.Json.

DataContractJsonSerializer ondersteunt dezelfde typen als DataContractSerializer. De JSON-gegevensindeling is vooral handig bij het schrijven van Asynchrone JavaScript- en XML-webtoepassingen (AJAX). AJAX-ondersteuning in Windows Communication Foundation (WCF) is geoptimaliseerd voor gebruik met ASP.NET AJAX via het besturingselement ScriptManager. Zie de AJAX-voorbeelden voor voorbeelden van het gebruik van WCF (Windows Communication Foundation) met ASP.NET AJAX.

De installatieprocedure en build-instructies voor dit voorbeeld bevinden zich aan het einde van dit onderwerp.

In het voorbeeld wordt een Person gegevenscontract gebruikt om serialisatie en deserialisatie te demonstreren.

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

    [DataMember]
    internal int age;
}

Als u een exemplaar van het Person type naar JSON wilt serialiseren, maakt u de DataContractJsonSerializer eerste en gebruikt u de WriteObject methode om JSON-gegevens naar een stream te schrijven.

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

De geheugenstroom bevat geldige JSON-gegevens.

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

Het voorbeeld demonstreert het deserialiseren van JSON-gegevens in een object. Vervolgens kunt u de stream terugspoelen en bellen ReadObject.

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

Bij het onderzoeken van het p2 object blijkt dat de JSON-gegevens correct zijn gedeserialiseerd.

Het voorbeeld bouwen en uitvoeren om het in te stellen

  1. Bouw de oplossing JsonSerialization.sln zoals beschreven in het bouwen van de Windows Communication Foundation-voorbeelden.

  2. Voer de resulterende consoletoepassing uit.