Json serialize ve deserialize işlemi için en yaygın olan kütüphane NewtonSoft.Json kütüphanesidir.
PM> Install-Package Newtonsoft.JsonWebsite : https://www.newtonsoft.com/json
Json örnek veri tipleri ;
Array, (json dilinde Jarray)
["kedi", "köpek", "kuş"]Deserialize işlemi;
string veri = "[\"kedi\", \"köpek\", \"kuş\"]";
var j = JsonConvert.DeserializeObject(veri);
foreach (var a in j)
{
Response.Write(a);
Response.Write("<br>");
}Object, (Json dilinde JObject){"adi" : "kadir", "soyadi" : "çelik", "email" : "email@adres.com" }Deserialize işlemi ; string veri = "{\"adi\":\"kadir\",\"soyadi\":\"çelik\",\"email\":\"email@adres.com\"}";
var j = JsonConvert.DeserializeObject(veri);
Response.Write(j("adi"));
Response.Write("<br>");
Response.Write(j("soyadi"));
// vs. v.s v.sObject ve array bir arada;{"kategori": "uçak", "koltuklar": [1,2,3]}Deserialize işlemi ;string veri = "{\"kategori\": \"uçak\", \"koltuklar\": [1,2,3]}";
var j = JsonConvert.DeserializeObject(veri);
var ka = j("kategori");
var ko = j("koltuklar");
Response.Write(ka);
Response.Write("<hr>");
foreach (var k in ko)
{
Response.Write(k);
Response.Write("<br>");
}İleri düzeylerde serialize & deserialize işlemleri;Class nesne tanımlayıp serialize ederek, yazdırma;
public class kullanicilar
{
public string adi { get; set; }
public string soyadi { get; set; }
public string email { get; set; }
}
public void yazdir()
{
kullanicilar kul = new kullanicilar();
kul.adi = "hasan";
kul.soyadi = "çoban";
kul.email = "hasan@hotmail.com";
var json = JsonConvert.SerializeObject(kul);
Response.Write(json);
}Çıktı ;
{"adi":"hasan","soyadi":"çoban","email":"hasan@hotmail.com"}Eleman yapısını bildiğimiz string değeri class yapısına çevirme ;public class kullanicilar
{
public string adi { get; set; }
public string soyadi { get; set; }
public string email { get; set; }
}
public void yazdir()
{
string strVeri = "{\"adi\":\"hasan\",\"soyadi\":\"çoban\",\"email\":\"hasan@hotmail.com\"}";
kullanicilar kul = JsonConvert.DeserializeObject<kullanicilar>(strVeri);
Response.Write(kul.adi);
}Liste tipinde class örnek ;
public class kullanicilar
{
public string adi { get; set; }
public string soyadi { get; set; }
public string email { get; set; }
}
public void yazdir()
{
List<kullanicilar> liste = new List<kullanicilar>();
liste.Add(new kullanicilar() { adi = "hasan", soyadi = "çoban", email = "aslan@mail.com" });
liste.Add(new kullanicilar() { adi = "kenan", soyadi = "çelik", email = "kedi@mail.com" });
liste.Add(new kullanicilar() { adi = "osman", soyadi = "şahin", email = "sahin@mail.com" });
var j = JsonConvert.SerializeObject(liste);
Response.Write(j);
}Çıktı;
[{"adi":"hasan","soyadi":"çoban","email":"aslan@mail.com"},{"adi":"kenan","soyadi":"çelik","email":"kedi@mail.com"},{"adi":"osman","soyadi":"şahin","email":"sahin@mail.com"}]