[L]angsung to the point ya. Blog post yang saya tulis ini berisi contoh kode C# untuk melakukan serialize dan deserialize data JSON. Serialize artinya mengubah data yang semula dalam bentuk objek kedalam format JSON, sedangkan deserialize adalah sebaliknya dari JSON ke objek.
Kode yang saya tulis untuk keperluan ini menggunakan kelas DataContractJsonSerializer yang merupakan bawaan dari .NET platform.
Kelas Model
Siapkan terlebih dahulu kelas modelnya. Tambahkan beberapa attribute seperti DataContract dan DataMember supaya JSON bisa dikonversi dari dan ke objek secara automatis.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
using System; using System.Collections.Generic; using System.Linq; using System.Runtime.Serialization; using System.Text; using System.Threading.Tasks; namespace JsonDeserialization_Belajar { [DataContract] public class Person { [DataMember(Name="name")] public string Name { get; set; } [DataMember(Name="email")] public string Email { get; set; } [DataMember(Name="job")] public string Job { get; set; } } } |
Serialize
1 2 3 4 5 6 7 8 9 10 11 12 13 |
Person p = new Person(); p.Name = "A Name"; p.Email = "An Email"; p.Job = "A Job"; var memoryStream = new MemoryStream(); var ser = new DataContractJsonSerializer(typeof(Person)); ser.WriteObject(memoryStream, p); memoryStream.Position = 0; StreamReader streamReader = new StreamReader(memoryStream); Console.WriteLine(streamReader.ReadToEnd()); |
Deserialize
1 2 3 4 5 6 7 8 9 10 11 12 |
var request = WebRequest.Create("http://echo.jsontest.com/name/AgungSetiawan/email/com.agungsetiawan@gmail.com/job/SoftwareEngineer"); var response = request.GetResponse(); Person person = null; using (var stream = response.GetResponseStream()) { var serializer = new DataContractJsonSerializer(typeof(Person)); person = (Person)serializer.ReadObject(stream); } Console.WriteLine("{0}, {1}, {2}",person.Name,person.Email,person.Job); |
Source Code
Source code sampel bisa diperoleh di github saya di sini
Enjoy it 😀
Facebook Comments