Megosztás:


DataContractJsonSerializer példa

Ez a cikk a JsonSerialization mintát ismerteti.

Megjegyzés:

Ez a mintapéldány DataContractJsonSerializer számára szolgál. A JSON szerializálásával és deszerializálásával járó legtöbb forgatókönyv esetében a System.Text.Json névtér API-kat javasoljuk.

DataContractJsonSerializer ugyanazokat a típusokat támogatja, mint a DataContractSerializer. A JSON-adatformátum különösen hasznos aszinkron JavaScript és XML (AJAX)-stílusú webalkalmazások írásakor. A Windows Communication Foundation (WCF) AJAX-támogatása ASP.NET AJAX-tal való használatra van optimalizálva a ScriptManager vezérlőn keresztül. Példák a Windows Communication Foundation (WCF) ASP.NET AJAX-tal való használatára, lásd az AJAX-mintákat.

A minta beállítási eljárása és összeállítási utasításai a témakör végén találhatók.

Egy adatszerződés Person használatával a minta bemutatja a szerializálást és a deszerializálást.

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

    [DataMember]
    internal int age;
}

JSON-ra történő szerializáláshoz az Person típusból hozzon létre egy példányt, először hozza létre az DataContractJsonSerializer-t, majd használja a WriteObject metódust, hogy JSON-adatokat írjon a streambe.

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

A memóriastream érvényes JSON-adatokat tartalmaz.

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

A minta bemutatja a JSON-adatok deszerializálását egy objektumba. Ezután visszapörgetheti a streamet, és meghívhatja ReadObject.

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

Az p2 objektum vizsgálata azt mutatja, hogy a JSON-adatok megfelelően lettek deszerializálva.

A minta beállításához, összeállításához és futtatásához

  1. Építse a JsonSerialization.sln megoldást a Windows Communication Foundation minták építése című részben leírtak szerint.

  2. Futtassa a kapott konzolalkalmazást.