JSON مخفف عبارت «Javascript Object Notation» به معنی «نشانگذاری شیء جاوااسکریپت» است. و با استفاده از آن میتوان اطلاعات مورد نظر را ارسال یا دریافت نمود. ما در این برنامه به نحوه Serialize و Deserialize کردن اطلاعات در قالب Json خواهیم پرداخت.
برای شروع یک برنامه از نوع Console Application ایجاد نمایید.
سپس یک کلاس بنام Person بصورت زیر ایجاد نمایید.
[DataContract]
internal class Person
{
[DataMember]
internal string name;
[DataMember]
internal int age;
}
درج اتریبیوتهای DataContract و DataMember جهت serialize شدن اشیاء ساخته شده از کلاس Person ضروری میباشد.
اکنون دو شیئ از کلاس Person بصورت زیر ایجاد نمایید و در لیست از Person قرار دهید.
Person p = new Person();
p.name = "Mohammad";
p.age = 34;
Person p2 = new Person();
p2.name = "Ali";
p2.age = 30;
List<Person> lp = new List<Person>();
lp.Add(p);
lp.Add(p2);
در این برنامه قصد داریم اطلاعات موجد در لیست ایجاد شده را serialize و سپس Desrialize نماییم.جهت serialize نمودن لیست از کدهای زیر استفاده کنید.
MemoryStream stream1 = new MemoryStream();
DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(IEnumerable<Person>));
ser.WriteObject(stream1, lp);
همانطور که میدانید اکنون داده های لیست به فرمت json serialize شده است .
جهت مشاهده اطلاعات در قالب json از کدهای زیر استفاده نمایید و خروجی را مشاهده کنید.
stream1.Position = 0;
StreamReader sr = new StreamReader(stream1);
Console.Write("JSON form of Person object: ");
Console.WriteLine(sr.ReadToEnd());
جهت Deserialize نمودن اطلاعات کدهای زیر را در انتهای برنامه درج نمایید.
stream1.Position = 0;
Person[] p3 = (Person[])ser.ReadObject(stream1);
Console.WriteLine("Deserialized back, got name=");
foreach (var item in p3)
{
Console.Write(item.name);
Console.Write(", age=");
Console.WriteLine(item.age);
}