Ajax'i sevenler, Ajax kullanarak uygulama gelistirenler yeni JSON akimindan mutlaka haberdar olmalilar. JSON, XML gibi bir veri biçimleme formatidir. Fakat bu format Javascripte bir nesnenin modellenmesiyle ayni oldugu için, XML üzerinde parse agaçlari yaratip gerekli dügümleri geri getirmekten yaklasik 10 kat daha hizli çalisir.

Bir XML örneginin esdeger JSON görüntüsünü inceleyecek olursak:

XML:
  1. <kitaplar>
  2.     <kitap>
  3.         <isim>Burcu'nun Kitabi</isim>
  4.         <yazar>Burcu Dogan</yazar>
  5.         <fiyat>10</fiyat>
  6.     </kitap>
  7.  
  8.     <kitap>
  9.         <isim>Burcu'nun Olmayan Ikinci Kitabi</isim>
  10.         <yazar>Burcu Dogan</yazar>
  11.         <fiyat>20</fiyat>
  12.     </kitap>
  13. </kitaplar>

Bu tür bir XML dökümani göründügü gibi kitaplar hakkindaki temel bilgilerden olan isim, yazar ve fiyat özelliklerini saklamaktadir. Ayni bilgileri JSON ile belirtmek istiyor olsaydik ise asagidaki formata sahip olacaktik:

JavaScript:
  1. {
  2.     "kitaplar": [
  3.    
  4.         {
  5.             "isim" : "Burcu'nun Kitabi",
  6.             "yazar": "Burcu Dogan",
  7.             "fiyat": 10
  8.         }
  9.         {
  10.             "isim" : "Burcu'nun Olmayan Ikinci Kitabi",
  11.             "yazar": "Burcu Dogan",
  12.             "fiyat": 20
  13.         }
  14.     ]
  15. }

Tanidik öyle degil mi? Bu format ayni bir JS objesine benziyor, ki öyle. Ajax'la bu metni okudugunuzu düsünün ve geri dönen "response text"i eval() fonksiyonuna gönderin. Böylece bir dosyadan kolayca bir obje olarak elde etmis olacaksaniz.

JavaScript:
  1. var yeniobje = eval (json_dosyasindan_gelenler);

Bu sayede yeniobje[0].isim'i çagirdinizda geri dönecek bilgi "Burcu'nun Kitabi" olacak. Hersey bu kadar basit!

Yorum Ekleyin ↓

Required Adınız (gerekli)
Required Email (görüntülenmeyecek - gerekli)
Blog / Website? (varsa)

KISA BİR NOT: Lütfen yorumlarıza özen gösterin, tartışma yaratmak için provake edilmiş yorumları silmekten büyük bir zevk aldığımızı unutmayın. Fikrinizi bağırın ama onun arkasında durabilcek gerekçeleriniz olsun. - Bir dost...

13 Yorum ↓

Farklı bakış açılarının var olduğu bir dünyayı destekleyen bir blog olarak bize fikir hocalığı yapmaktan kaçınmamanızı ve yazmaya değer bulduklarınızın altına birşeyler eklemeyi unutmamanızı yürekten diliyoruz.
  •  Add karma Subtract karma -1
    1. H-Yaman » Haftalık Haber Turu-17 @ [21/08/2007]

    [...] Blogunu kısa bir süredir tutmaya başlayan Burcu Doğan’dan JSON ile ilgili güzel bir makale Işınlan [...]

  •  Add karma Subtract karma +0
    2. Özlem Yılmaz @ [21/08/2007]

    gene bir isteği var :mrgreen: burcu bir tür performans analizi yazısı var mı bu konuda, ya da senin yaptığın?

  •  Add karma Subtract karma +0
    3. grkn @ [21/08/2007]

    gerçekten çok işime yaradı, teşekkürler :)

  •  Add karma Subtract karma +0
    4. Kiirpi’nin Güncesi » Blog Archive » JSON kullanımı @ [21/08/2007]

    [...] Burcu Doğan ‘ın JSON’ı ne için nerde kullanabiliriz? makalesinide okumanızı tavsiye [...]

  •  Add karma Subtract karma +0
    5. Densiz == @ [21/08/2007]

    Saol Burcu, okuldan bir arkadaş gelmişti JSON diyerek hava atıyordu ki tam bu bloga girip basit ve bildiğim bir şey olduğunu gördüm. Güzel oldu arkadaşımın havasına. Heheh :twisted:

  •  Add karma Subtract karma +0
    6. Alper Özçetin @ [22/08/2007]

    JavaScript / C benzeri dillerlerin yazım kuralları ile benzer olduğu için, parse etmek çok rahat, JSON hızlı da, ama birkaç güvenlik sorunu var sanırım. tagı, başka bir sayfadan erişebilir olduğu için ve JSON da yapısından dolayı kodun bir parçası olduğu için verilere erişilebiliyor. JSON'a şimdiye kadar çok fazla ihtiyaç duymadım, hızlı olması güzel, parse etmesinin kolay olması da güzel ama zaten bir .NET geliştiricisi olarak XML parse ederken de pek angaryalarla uğraşmıyorum. Daha popüler olan XML'i kullanmak bence daha şimdilik daha mantıklı, ayrıca XSL avantajını da unutmamak gerek.

    Belki ilginizi çeker.
    http://json.org/JSONRequest.html

  •  Add karma Subtract karma +0
    7. Alper Özçetin @ [22/08/2007]

    Az önce yazdığım yorumda "sanırım. tagı," TAGından önce, <script> yazmıştım. Direk yazınca silindi...

  •  Add karma Subtract karma +0
    8. ubuntu @ [22/08/2007]

    Alper, her eval edilen şeyde bir güvenlik açığın mutlaka vardır. Gerekli önlemini almadan yazamazsın elbette :D

  •  Add karma Subtract karma +0
    9. Fatih Hayrioğlu’nun not defteri » 22 Ağustos 2007 Web’den Seçme Haberler @ [22/08/2007]

    [...] burcudogan.com JSON’ı ne için kullanabiliriz adlı bir makale. Link [...]

  •  Add karma Subtract karma +0
    10. Alper Özçetin @ [22/08/2007]

    Birçok insan JSON için kullanılan güvenlik yöntemlerinin sağlıklı olmadığını düşünüyor, ben de öyle düşünüyorum. Mesela JSON verisini comment olarak göstermek, JSON'ın geliştiricisi Douglas Crockford'da bunu önermiyor, başka sorunlara yol açabilir, güvenliğin hileler yaparak sağlanmasını doğru bulmadığını söylemiş. (http://www.adtmag.com/article.aspx?id=21089).
    Hatta eval ile parse etmenin de sağlıksız olduğunu söylemiş.
    http://www.json.org/json.js
    JSON parse etmek bunun kullanılması gerekiyormuş. Tabiki bu eval kadar hızlı değil ama amaç XML'den daha hafif olan JSON'ı hızlı çalıştırmak, bu eval'den yavaş olsa da XML'den hızlı, yani güvenlik sağlıyorsa kabul edilebilir, ama birçok insan bunun da güvenli olmadığını söylüyor. JSON verisine direk olarak erişmenin hala kolay olması ve bu kodun Object.ProtoType a eklenmesi bunu da güvenli yapmıyor diyorlar. En iyi çözüm JSON desteğinin JavaScript'te kendiliğinden olması. Şimdilik bu destek olmadığı için JSON kullanımının beklemesi gerektiğini düşünüyorum.

    Bu arada XSLT gibi JSONT de varmış, çok fazla incelemedim ama şu an XSL'in seviyesinde değil gibi ve yapılan küçük bir testte XML+XSLT'nin JSON+JSONT'den daha hızlı olduğu görünüyor. http://ejohn.org/apps/jsonvxml/jsonvxml.png

    Bence JSON biraz bekleyebilir, kısa bir süre sonra belki JSON'la daha sık uğraşabiliriz ama XML şu an güzel. :)

  •  Add karma Subtract karma +0
    11. Hakan @ [22/08/2007]

    Aslında çok iyi fikir Burcu, çok teşekkürler :mrgreen: Daha önce bu aklıma gelmemişti. Yeni sistemlerimde XML 'i kullancaktım ama JSON daha iyi fikir gibi duruyor.
    Bu arada PHP ile nasıl JSON yazdırabilirsiniz? Bkz: PHP ile JSON(Javascript Object Notation) işlemleri

  •  Add karma Subtract karma -1
    12. Kiirpi’nin Güncesi » Blog Archive » JSON örneklere devam.. @ [27/08/2007]

    [...] hakkında anlamtmaktan ziyade Burcu Doğan’nın makalesi ve benim JSON ile ilgili makalem den [...]

  •  Add karma Subtract karma -1
    13. Enis Gültekin @ [28/01/2008]

    Güzel anlaşılır kısa bir açıklama...:d