C# Json Serialize Deserialize && Encoding Decoding İşlemleri

Bu yazıda C# yazılım dili ile Json Serialize ve Deserialize yapmayı ve de Encoding ve Decoding işlemlerini anlatmaya çalışacağım.

C# ile var olan bir nesneyi Json formatına dönüştürmek(Serialize) ve de var olan bir Json formatından verileri almak için(Deserialize), aşağıdaki gibi bir yapı kullanabilirsiniz.

Şimdi öncelikle, örnekler üzerinden daha net anlaşılması için elimizde Student isminde bir nesnemiz olsun ve değerleri de aşağıdaki gibi olsun.

Student student = new Student();
student.Ad = "Kemal";
student.Soyad = "Öztürk";
student.Numara = "664";

Şunu öncesinde belirtmek gerekir ki, burada JsonConvert sınıfını kullanabilmek için projenize Newtonsoft.Json using’ini eklemeniz gerekmektedir.

 
Bu verilerle bir Json formatı üretmek için, aşağıdaki yapıyı kullanabiliriz.

string jsonSerialize = JsonConvert.SerializeObject(student);

Yukarıdaki kod çalıştığında çıktımız aşağıdaki gibi olacaktır.
JsonSerialize

Şimdi de bu oluşan Json formatındaki verilere ulaşmak için ise aşağıdaki gibi deserialize yöntemini uygulayacağız. Yani,

Student jsonDeserialize = JsonConvert.DeserializeObject<Student>(jsonSerialize);

Yukarıdaki kod çalıştığında ise çıktımız aşağıdaki gibi olacaktır.
JsonDeserialize

Anlaşılır olması açısından olabildiğince basit bir şekilde Json serialize ve deserialize yöntemini anlatmaya çalıştım.

 

Bir diğer anlatmak istediğim konu ise encoding ve decoding işlemleri, yine aynı örnek üzerinden gitmek gerekirse oluşturduğumuz bu json formatı ile encoding ve decoding işlemleri yapalım.
Elimizdeki json formatıyla aşağıdaki gibi bir encoding işlemi yapabiliriz.

byte[] arrayToBase = UTF8Encoding.UTF8.GetBytes(jsonSerialize);
string toBase64 = Convert.ToBase64String(arrayToBase);

Burada toBase64 = “eyJBZCI6IktlbWFsIiwiU295YWQiOiLDlnp0w7xyayIsIk51bWFyYSI6IjY2NCJ9” değeri olacaktır. Bu değer aslında oluşan json formatının encode edilmiş halidir. Bu değeri istediğiniz bir yerde decode ettiğinizde Json formatını görebileceksiniz.
 
Şimdi, oluşturduğumuz bu değeri, decode işlemi ile tekrardan Json formatına dönüştürmek istersek, aşağıdaki kod işimizi görecektir.

byte[] arrayFromBase = Convert.FromBase64String(toBase64);
string fromBase64 = UTF8Encoding.UTF8.GetString(arrayFromBase);

Burada fromBase64 = “{\”Ad\”:\”Kemal\”,\”Soyad\”:\”Öztürk\”,\”Numara\”:\”664\”}” değeri olacaktır. Yani ilk serialize ettiğimiz değer.
Ufak bir not encode ve decode işlemlerinde eğer ki türkçe karakter hatası alırsanız UTF8Encoding.UTF8.GetBytes yerine Encoding.GetEncoding(1254).GetBytes kodunu kullanabilirsiniz.

C# ile encode ve decode işlemleri en basit haliyle bu şekilde yapılmaktadır. Elimden geldiğince kısa ve basit bir şekilde anlatmaya çalıştım.

Herhangi bir sorunuz olursa konu altına yorum olarak belirtebilirsiniz.
Hepinize iyi çalışmalar 🙂

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir