Bagikan melalui


Sampel DataContractJsonSerializer

Artikel ini menjelaskan sampel JsonSerialization.

Catatan

Sampel ini untuk DataContractJsonSerializer. Untuk sebagian besar skenario yang melibatkan serialisasi dan deserialisasi JSON, kami merekomendasikan API di namespace System.Text.Json.

DataContractJsonSerializer mendukung jenis yang sama dengan DataContractSerializer. Format data JSON sangat berguna saat menulis aplikasi Web bergaya Asynchronous JavaScript dan XML (AJAX). Dukungan AJAX di Windows Communication Foundation (WCF) dioptimalkan untuk digunakan dengan ASP.NET AJAX melalui kontrol ScriptManager. Untuk contoh cara menggunakan Windows Communication Foundation (WCF) dengan ASP.NET AJAX, lihat Sampel AJAX.

Prosedur pengaturan dan instruksi build untuk sampel ini terletak di akhir topik ini.

Sampel menggunakan kontrak data Person untuk menunjukkan serialisasi dan deserialisasi.

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

    [DataMember]
    internal int age;
}

Untuk menserialisasi instans jenis Person ke JSON, buat DataContractJsonSerializer terlebih dahulu dan gunakan metode WriteObject untuk menulis data JSON ke aliran.

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

Aliran memori berisi data JSON yang valid.

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

Sampel menunjukkan deserialisasi dari data JSON menjadi objek. Anda kemudian menggulung balik aliran dan memanggil ReadObject.

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

Memeriksa objek p2 mengungkapkan bahwa data JSON telah dideserialisasi dengan benar.

Untuk menyiapkan, membangun dan menjalankan sampel

  1. Bangun solusi JsonSerialization.sln seperti yang dijelaskan dalam Membangun Sampel Windows Communication Foundation.

  2. Jalankan aplikasi konsol yang dihasilkan.