JSON (Zayıflatılmış XML alternatifi) - 1

JSON Mustafa Ahmet KARA

Bu kadar teorik bilgiden sonra giriş seviyesinde kullanım yöntemlerini ve artılarını tanıyalım.

JSON tamamiyle Unicode (varsayılan olarak UTF-8) çalışır. Türkçe problemini kesinlikle yaşamayacağınız veri aktarım formatlarından biridir.

JSON sürüm numarasına sahip değildir.Sürüm numarası olsa idi, oturana kadar 3.0′ı beklerdik. JSON grameri kesindir, ve tamamıyle oturmuş ve düzgün çalışan bir yapıdadır.

Postel’in “Kabul ederken esnek ol, gönderirken tutucu” ifadesine uygun yapısı vardır. O yüzden JSON yorumlayıcılar JSON harici formatları kabul eder, ama JSON oluşturucuların sağlıklı çalışması için geçerli bir JSON ifadesi oluşturması şarttır.

Bu JSON’un genişletilmesine izin verir. Örnek vermek gerekirse Javascript JSON’un bir üst kümesidir ve doğal olarak JSON desteğine sahiptir. Ve XML haricinde neredeyse tüm dillerin veri aktarımları için kullabildiği ve desteklediği bir formattır. Örnek vermek gerekirse MsAjax.NET altyapıda veri transferi için XML yerine JSON kullanır.

Kullanım örneği için sunucundan Geçerli kullanıcının adını soyadını alan ve bunu dokümana yazan kısmı örnek olarak vereceğim ve aynı işlemi XML transferi ile yaptığımızda nelerin değişeceğini inceleceğim.

Sunucu Ad = Mustafa, Soyad = Kara verisini bize ulaştırmak istesin bu veriyi aşağıdaki formatta bize gönderecektir.

{
“Ad” : “Mustafa”,
“Soyad”: “Kara”
}

Aynı veri XML ile bize ulaşması durumunda

<user>
<Ad>Mustafa</Ad>
<Soyad>Kara</Soyad>
</user>

Boşlukları hiç koymadan gönderdiğimizi varsayarsak JSON bu kadar ufak bir veride bile toplamda data kısmında 31 karakter, XML ile 45 karakter ile sunucudan %25 daha az veri alıyoruz. Dolayısıyla daha hızlı alıyoruz.

Bu veriyi yorumlama kısmı öncesinde javascript içinde XMLHttpRequest nesnesinin responseText ile aldığınız bir veriyi responseText değişkenine atamış olalım. Bunu yorumlamak ise JSON ile aşağıdaki gibi olacaktır:

UserData = eval(’('+responseText +’)');

Ve Ad ve Soyad değişkenlerini de dokümana yazdıralım

document.write(UserData.Ad + ” ” + UserData.Soyad);

Javascript fonksiyonunda text’i evale sokunca bu şekilde javascript objesi oluşturması ilk başta banada inanılmaz gelmişti ama denedikten sonra mucizenin büyüklüğünü kavradım. JavaScript JSON ‘un üst kümesi olduğu için bu inanılmaz iç içelik anlam kazanmıştı.

Aynı işlemi XML ile yapmaya kalkarsak farklı yollarımız var.

  • XmlDocument oluşturup XSL ile xhtml’e dönüştürüp dokümana yazdırırız.(en az 6 satır kod artı yorumlama maliyeti karşımıza çıkar)
  • XmlDom oluşturup düğümleri içinde gezer, Ad düğümünü bulup değerini alıp, Soyad düğümünü bulup değerini alırız. Sonra yazdırırız.(Aynı şekilde en az 6 satır kod ve yorumlama maliyeti)

Yukarıda bahsettiğim datanın aktarılmasındaki boyut azalması ve işleme kolaylığı yüzünden JSON AJAX taki X in yerini almaya çoktan başlamıştır. Bazı geliştiriciler artık AJAJ (Asynchronous JavaScript and JSON) terimini kullanmaya başlamışlardır. Bazı geliştiriciler HTML sayfaları üretmek yerine HTML taglarını JSON ile transfer etmeye başladılar ve istemcide HTML kodlarını dinamik olarak üretiyorlar.

Bu yazımda JSON konusuna bir girişte bulundum, takip eden yazılarımda JSON ile veri transferinin getirdiği faydaları ve dezavantajlarından, çeşitli sunucu tabanlı diller ile kullanımlarından, XML Web Servislerinin yerini almaya başlayan JSON Web Servislerinden bahsedeceğim. Şimdilik iyi akşamlar

Sayfalar: 1 2

Toplamda 5126 kez okunmuş.
Şu an 1 kişi okuyor.
En fazla 5 kişi aynı anda okumuş.
Bugün 18 kez okunmuş.

Etiketler:

1 oy2 oy3 oy4 oy5 oy (8 oy, ortalama 4.75) Oylanıyor ... Oylanıyor ...

  1. Sağlamlığı Kanıtlanmış Tekniklerle Web 2.0 AJAX
  2. Same Origin Policy ( Aynı Kaynak Politikası)
  3. JSON ve XML

Trackback Yorumları takip et Baskı Önizleme

9 yorum var

  1. # Hamza Saglam | 29 Ağustos 2007, 02:39 Gravatar

    Mustafa, cok guzel bi konuya deginmissin, ellerine saglik.

    PHP ile calisicak arkadaslarin http://us3.php.net/json adresinden detaylara bakmasini tavsiye ederim. Eger array kullanmayi biliyosaniz, JSON kullanmaniz cok kolay olucaktir. Arrayinizi olusturduktan sonra json_encode() kullanarak array’in JSON esitini alabilirsiniz.

  2. # eburhan | 29 Ağustos 2007, 07:55 Gravatar

    Konuyu dolaştırmadan direkt olarak JSON’ı güzel bir şekilde anlatmışsın.
    Teşekkürler Mustafa ;)

    Bu arada “Hamza Bey”in söylediği php fonksiyonlarını kullanabilmek için enaz php’nin 5.2.0 sürümüyle çalışıyor olmak gerekiyor. Fakat jSON’ı encode/decode eden ve php’nin alt sürümlerinde de çalışan güzel sınıflar mevcut. Yeri geldiğinde bunlardan bahsederiz (:

  3. # AJAX-TR.COM » JSON ve PHP | 30 Ağustos 2007, 21:17 Gravatar

    […] Merhaba arkadaşlar, JSON serilerine devam ediyorum. JSON’un PHP, ASP, ActionScript, C++, C#, Java dillerinde kullanım örneklerini varolan kütüphanelerin farklılıklarından bahsedeceğim. Yazının başlığından anlayacağınız üzere kullanım örneklerinden ilk olarak PHP ile kullanımından bahsedeceğim. JSON bildiğiniz gibi bir veri değiştirme formatıdır. JSON hakkında daha ayrıntılı bilgi almak için tıklayabilirsiniz. PHP üzerinde isimlerini duymuş olduğum ve test edebildiğim 6 adet kütüphane var. Ve değerli yorumlarını eksik etmeyen Hamza ve Erhan arkadaşımızın bahis konusu ettiği gibi PHP 5.2.0 sürümünden itibaren PHP içinde standart fonksiyonlar olarak desteklenmekte. Standart olarak dil desteği olduğu için bu örneklerde o fonksiyonları inceleyecek ve 5.2.0 öncesi kullanıcılar için diğer kütüphaneleri kısaca tanıyacağız. […]

  4. # MaFiAMaX | 01 Eylül 2007, 13:54 Gravatar

    JSON bu aralar benim de haşır neşir olduğum bir konu. Blogger kullanıcılarının en büyük sorunlarından biri “Son Yorumlar” eklentisinin olmamasıdır. Bunu 2 yöntemle aşmak mümkün. Birincisi yorum XML kaynağını kullanmak. Ama Blogger sunucularından gelen bilgiler gecikmeli olduğundan bu yöntem yorumların geç gözükmesine neden oluyor. İşte burda 2. yöntem yani JSON devreye giriyor. JSON kullanımı hakkında 2 tane yazı yazmıştım. Eğer JSON’a merak duyanlar varsa o yazılardaki JavaScript dosyalarını incelemeleri yararlarına olur.

    İlgili yazılar:

    Blogger’a Son Yorumlar ve Yazılar Eklentisi [JSON]
    Blogunuzda Bulunan Yazıların Tamamını Bir Tabloda Gösterin [JSON]

  5. # özkan | 06 Eylül 2007, 16:52 Gravatar

    bu json hakkında detaylı bir makale hazırlayabilirmisiniz ne iş yapıyor tam anlamış değilim xml teknolojisinin yerine geçicek bir şeymi bu?

  6. # AJAX-TR.COM » JSON ve ActionScript | 21 Eylül 2007, 21:36 Gravatar

    […] Merhaba arkadaşlar JSON serilerinin bir devamı olan ActionScript içinde JSON kullanımından size bu yazımda bahsedeceğim. Bir şekilde Flash ile JSON kullanımını merak eden kişiler için hazırlamış olduğum bu yazımda hali hazırda JSON desteği sunan as3corelib kütüphanesini inceleyeceğiz. […]

  7. # eburhan.com » jQuery ve JSON işlemleri | 08 Mart 2008, 10:31 Gravatar

    […] JSON (Zayıflatılmış XML alternatifi) […]

  8. # deneme | 24 Mart 2008, 02:00 Gravatar

    güzel makale

  9. # volkan şentürk | 18 Nisan 2008, 09:13 Gravatar

    ellerine sağlık , çok güzel bir anlatım.çalışmlarında başarılar

Yorum yazın

sayfa sayacı