GAMZE KAYA 08260034 JSON
JSON JSON("Javascript Object Notation"), Douglas Crockford tarafından hazırlanmış,veri alış- verişi amacıyla oluşturulmuş bir veri iletim formatıdır. XML’in yaptığı gibi düzenli bir şekilde içerik kategorileme dilidir. Javascript'in bir alt kümesidir. XML’in JavaScript ile kullanımının pratik olmayışından dolayı hazırlanmıştır.
Şu veri tiplerini destekler: JSON XML'e göre daha hızlıdır, daha pratiktir. XML’deki gibi,Php, Asp, .Net, Python, ColdFusion, java, vb.. bütün programlama dillerinde etkin bir şekilde kullanılabilir. Şu veri tiplerini destekler: Number String Boolean Array Object null
Klasik DOM ağaçlarından farklı bir yapıya sahip değildir. { "tip": "kitap", "tur": "roman", "urunler": [ {"ad": "Ihtiyar Kemanci", "yazar": "Nihat Genc"}, {"ad": "Su Cilgin Turkler", "yazar": "Turgut Ozakman"}, {"ad": "Kafa Tutan Gunler", "yazar": "Esat Korkmaz"} ] }
En önemli özelliği, gereksiz işaretlemelerle uğraştırmamasıdır En önemli özelliği, gereksiz işaretlemelerle uğraştırmamasıdır. Birkaç karakter ile verileri dizebilmemizi sağlamaktadır ([],.{}'"). Pek çok sitenin API‘leri JSON formatını kullanmaktadır. Örneğin Google, Yahoo, Delicious, Flickr, YouTube, Getclicky…
JSON Yapılarını Oluşturma JSON'da obje oluştururken gerekli datayı { } arasına yazıyoruz. "özellik adı": "özellik değeri“ şeklinde bir formatı vardır. Farklı özellikleri virgül ile ayırıyoruz. { "Marka": "Lincoln", "Model": "Navigator", "Mot or": "300HP"},
[ ] şekli ise dizileri göstermek için kullanılıyor [ ] şekli ise dizileri göstermek için kullanılıyor. Diziler köşeli parantez ( [ ] ) ile başlar ve biterler. Arrayin içerisinde objeler tanımlamak istersek [{obje formatını uygula}]'ı kullanmamız gerekiyor. [ { "Marka": "Lincoln", "Model": "Navigator", "M otor": "300HP"},{ "Marka": "Cadillac", "Model": "Escalade", "Motor": "400HP"}, ]
Basit bir array tanımlamak isteseydik: [1,2,3,4] şeklinde yapabilirdik String array'i tanımlamak isteseydik: ["Pazartesi", "Salı"] şeklinde olurdu. Görüldüğü üzere string (yazı) varsa çift tirnak ( ”) içerisine alinirlar. Json bize iki boyut veya daha fazla boyutta dizi tanımlama imkanı da sunar.
php-json, json tipindeki verileri php nesnesine veya dizisine dönüştüren,geliştirilmiş bir php eklentisidir. İki basit ve en çok kullanılan fonksiyonu vardır: json_decode, json_encode.
json_decode($veri,[$diziyap]) Bir json verisini eğer $diziyap parametresi true ise php dizisine, aksi halde php nesnesine dönüştürecektir. json_encode ise yukarıdaki işlevin tam tersini icra eder.
Xml ile yazılmış bu örneğe bakacak olursak; <elemanlar> <eleman> <isim>Hüseyin Kocak</isim> <yasi>30</yasi> <calisiyor>true</calisiyor> </eleman> <isim>Ergin Baltaci</isim> <yasi>27</yasi> <calisiyor>false</calisiyor> <isim>Ali Gündüz</isim> <yasi>29</yasi> </elemanlar>
JSON ile yazacak olursak; { "elemanlar":[ "isim" : "Hüseyin Kocak", "yasi" : 30, "calisiyor" : true }, "isim":"Ergin Baltaci", "yasi" : 27, "calisiyor" : false "isim":"Ali Gündüz", "yasi": 29, "calisiyor": true } ]
Gördügünüz bircok Tag acip kapamak zorunda kaliyoruz XML’de Gördügünüz bircok Tag acip kapamak zorunda kaliyoruz XML’de.Ayrica her iki örnegi de text olarak kaydederseniz Json ile yazilmis kodumuzun cok daha az yer kapladigini göreceksiniz bunu binlerce nesne yüklü bir dosya oldugunu düsünürsek aradaki fark cok daha belirgin bir sekilde acilacaktir. Fakat Json ‘un en büyük avantaji javaScript ‘in bir alt kümesi olduğu için Ajax uygulamalarımızda cok daha kolaylıkla kullanabilmemiz ve Xml gibi de parse edilmesine gerek yoktur. Bir diger avantaji ise Json ‘u Html veya hangi programlama diline kullaniyorsaniz direk kodlariniz icerisine yerlestirip bir değişkene set ederek kullanabilirsiniz.
Bir örnek daha verecek olursak; <icerikler> <icerik> <adres>www.mynet.com</adres> <aciklama>Türkiye'nin en geniş portalı</aciklama> </icerik> <icerik> <adres>www.wmasterim.com</adres> <aciklama>Türkiye'nin gelecek vaadeden Webmaster Forumu</aciklama> </icerik> </icerikler>
{ "icerikler": [ { "adres" : "www. mynet { "icerikler": [ { "adres" : "www.mynet.com", "aciklama" : "Türkiye'nin en geniş portalı" } { "adres" : "www.zone.org", "aciklama" : "Webmaster Forumu" } ] } İçerikler gelenler adlı değişkende array olarak tanımlanmış olsun.Bu durumda biz gelenler[1].adres i çağırdığımız zaman karşımıza www.zone.org çıkıyor.
Son bir örnek daha verecek olursak; <ogrenciler> <ogrenci> <adı>osman</adı><sınıf>50c</sınıf> </ogrneci> <ogrenci> <adı>kamil</adı><sınıf>70x</sınıf> </ogrneci> </ogrenciler>
1.formu: [["osman","50c"],["kamil","70x"]] 2.formu: {ogrenciler:[["osman","50c"],["kamil","70x"]]} 3.formu: {ogrenciler:[["adı":"osman","sınıf":"50c"],["adı":"kam il","sınıf":"70x"]]} Görüldüğü gibi json ile veriler farklı formlarda istiflenebilirler. Hangi formu tercih edeceğimiz, hız ve okunabilirlik arasındaki dengeye bağlı olarak değişir. Kolay okunabilir bir şey için 3.form en iyi tercih olurken, hız ve trafik tasarrufu için 1.form en iyi tercih olur.
Teşekkürler…