09 Temmuz 2007, 13:30 tarihinde yazılmış olup, 790 kez okunmuş ve 1 yorum almış
Javascript Object Notation formatı ile gün gelir karşılaşabilirsiniz, aynen bugün benim karşılaştığım gibi
Görünüm olarak PHP’nin serialize fonksiyonu ile elde ettiğimiz yapıya benziyor fakat unserialize fonksiyonu bunu çözmede işe yaramıyor(muş). Araştırmalarım sonunla karşılaştığım bu formatın JSON olduğunu anladım ve çözme fonksiyonunu araştırdım.
JSON(Javascript Object Notation) Nedir?
Vikipedi diyor ki;
Açılımı "Javascript Object Notation", basit ve kullanışlı veri tutuş formatıdır.XML'in Javascript ile çok da iyi kullanılamamasından ötürü tercih edilir, klasik dom ağaçlarından farksız bir yapıya sahiptir.
Şu veri tiplerini destekler:
Örnek bir kod;
PHP5 Destekliyor
Güzelim pehepem beşim
herbir yeniliği sunduğu gibi JSON fonksiyonlarını da bizlere sunmuş. Fakat PHP sürümünün 5.2.0 ya da üstü olması gerekiyor.
JSON kütüphanesi sadece 2 adet fonksiyondan oluşuyor. Bunlardan ilki json_encode değerinizin JSON olarak gösterimini veriyor. Sonuncu fonksiyon olan json_decode ise JSON gösteriminin açılımını veriyor.
Peki PHP 5.2.0 altındaki sürümler ile ne yapacağız?
Korkmak, sıkılmak ve gerilmek yok PHP 'de.. Herşeyin bir kütüphane dosyası bulunduğu gibi, JSON için de bir kütüphane yer alıyor. Yani bilindik adıyla Class diyoruz bunlara.
Services_JSON Kütüphanesi
Eğer PHP sürümünüz JSON kütüphanesini içermiyorsa, Services_JSON yardımımıza yetişiyor. Michal Migurski tarafından hazırlanan bu kütüphane ile PHP 5.2.0 altındaki sürümlerde JSON ile çalışabilirsiniz.
Services_JSON kütüphanesini buraya tıklayarak indirebilirsiniz. Paket içerisinde birçok dosya ve kullanım dokümanları yer alıyor. Fakat işimize yarayacak olan JSON.php dosyası.
Kütüphanenin kullanımı çok basit. Biz sadece encode ve decode fonksiyonlarını inceleyeceğiz. Şöyleki;
Yukarıdaki örnek ile dizi değişkenimizi JSON formatına çevirmiş olduk ve yazımızın başındaki örnek kodlamayı elde ettik. Yani şu şekilde;
Şimdi elde ettiğimiz bu JSON formatını tekrar eski haline dönüştürelim. Fakat dikkat etmemiz gereken nokta, elde edeceğimiz açılmış değerin dizi değişken değil nesne tabanlı olacağıdır.
Ve sonrasında alttaki nesne modelini elde ettik.