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.
Fonksiyonlar
json_decode ( string $json [, bool $assoc] )
JSON ifadesinden PHP nesnesi veya dizisi oluşturur.
$json parametresi dönüştürülecek JSON ifadesidir
$assoc true olarak belirtilirse sonucu nesne değil, dizi olarak geri döndürür.
Dump sonuçları ise aşağıdaki çıktıyı oluşturur:
object(stdClass)#1 (5) {
["a"] => int(1)
["b"] => int(2)
["c"] => int(3)
["d"] => int(4)
["e"] => int(5)
}array(5) {
["a"] => int(1)
["b"] => int(2)
["c"] => int(3)
["d"] => int(4)
["e"] => int(5)
}
string json_encode (mixed $value)
Dosya işaretçileri gibi dış kaynak referans işaretçileri dışında herhangi bir PHP değişkenin JSON ifadesini oluşturur.
$value JSON ifadesi oluşturulacak değişkendir.
Bu kodun çıktısı ise
{"a":1,"b":2,"c":3,"d":4,"e":5}
Bu kısma kadar belirttiklerimin tamamına PHP kılavuzundan da ulaşabilirsiniz.
Diğer sayfalarda bir kaç örnek yapacağız ve diğer kütüphanelerin karşılaştırması olacaktır.
Toplamda 6270 kez okunmuş.
Şu an 1 kişi okuyor.
En fazla 7 kişi aynı anda okumuş.
Bugün 24 kez okunmuş.
Etiketler: ajaj, json, php
Trackback Yorumları takip et Baskı Önizleme

(16 oy, ortalama 4.56)
# Hamza Saglam | 31 Ağustos 2007, 00:02
Onceki makaledeki sabirsiz yorumum icin ozur dilerim
# Mustafa Kara | 31 Ağustos 2007, 00:33
Hamza gerçekten özür dilemene hiç gerek yok aslında çok yardımcı oldun. JSON’un bir çok dilde kullanımı hakkında yazılar hazırlama düşüncem vardı ama hangisi olacağı konusunda karar verememiştim. PHP ilk oldu sonuçta, senin sayende. Asıl ben teşekkür ederim, hangi dil sorusuna cevap verdiğin için.
# solskajer | 31 Ağustos 2007, 14:27
vallahi ne söliiim mükemmel bir anlatım olmuş bilgine ve emeğine sağlık bir haftadır araştırıyorum bu JSON olayını böyle bir anlatım bulamadım.
çok teşekkürler kolay gelsin…
# illumunati | 01 Eylül 2007, 00:09
abi kusra kalmayın biraz acemiyim bu jsonları nerede kullanabiliriz yani açıklarsanız sevinirim..
# Mustafa Kara | 01 Eylül 2007, 16:51
AJAX ile sunucudan veri almak istediğin heryerde JSON kullanabilirsin.
http://ajax-tr.com/ajax-ne-gibi-durumlarda-kullanilmali/ yazısına bakar isen AJAX’î hangi durumlarda kullanabileceğin ayrıntılı anlatılmış durumda. Sunucudan veri aktarımında ise JSON u kullanabilirsin.
Örnek vermek gerekirse şehir listesini AJAX ile arka planda yüklemek istiyorsun, bu durumda sunucudan veriyi JSON formatında gönderebilirsin.
Dinamik form yapmak istiyorsun, form alanları sunucudan JSON formatında gelebilir.
Form post yapacaksın, JSON formatında yapabilirsin.
Tabii tüm bunları XML, HTML ile de yapabilirsin. JSON sadece veri aktarımında ve dönüştürülmesinde kolaylıklar ve veri boyutlarında azalmaya neden olan bir format. Diğerlerine göre daha yeni olduğu için ve tam standartları oturmadığı için bazı problemleride mevcut, bunlardan JSON yazısının sonunda zaten bahsedeceğim.
Umarım yardımcı olabilirmişim.
# illumunati | 02 Eylül 2007, 15:35
saol hocam.”şehir listesini AJAX ile arka planda yüklemek istiyorsun, bu durumda sunucudan veriyi JSON formatında gönderebilirsin.” bu acıklama benim için yeterli oldu. abi okuyup öğreneceğiz inş. saolasın hemen başlıyorum . Paylaşım için ve dha önemlisi exstara açıklama için(benim gibi acemilere) teşekkürler. sağlıacakla kal.
# Strefrextor | 21 Eylül 2007, 11:16
ilk oalrak herkese merhabalar . Ben şu ajax işinde türkçe karater hatasını bir türlü düzeltemedim
. Çalışmalarımda her ajax da hep gelen veriler türkçe karakterler soru işaretli olarak çıkıyor . Yardımcı olursanız çok sevinirim . Ayrıca projeleriniz geçekten çok harika . başarılarınzın devamını dilerim. Umarım devamı gelir
# mustafa_kara | 21 Eylül 2007, 21:22
Merhabalar,
Türkçe problemini aşmak için sunucudan gönderdiğin verinin unicode olarak geldiğine dikkat etmen yeterli ama eğer elinde olmayan sebeplerle unicode olarak gönderemiyorsan ki başıma gelmişti bir kere sunucudan ç için |c|, İ için |I| gönderiyordum ve istemci tarafında aşağıdaki gibi bir kod çalıştırıyordum
var resposeText = xmlHttp.responseText;
if (responseText) responseText = responseText.replace(/|c|/g,”ç”).replace(/|I|/g,”İ”);
Bu şekilde bu sorunu aşmıştım ama unicode olarak göndermek en iyisi tabiiki.
# Strefrextor | 22 Eylül 2007, 14:29
Cevabınız için çok saolun fakat bu işlerde ben bayağı yeni olduğum için bu kodu tam olarak nereye ekleyeceğimide söylerseniz çok daha memnun olacağım . Şimdiden teşekkürler
# çağrı | 01 Ekim 2007, 19:54
diziler için iyi bir sonuç teşekkürler
# wmwebtr ödüllü seo yarışması | 04 Kasım 2007, 19:21
Banada oldukça yeni geldi bu konu. Açıklayıcı anlatımlarınız için teşekkürler .
# mustafa | 02 Aralık 2007, 17:25
Türkçe problemini aşmak için sunucudan gönderdiğin verinin unicode olarak geldiğine dikkat etmen yeterli ama eğer elinde olmayan sebeplerle unicode olarak gönderemiyorsan ki başıma gelmişti bir kere sunucudan ç için |c|, İ için |I| gönderiyordum ve istemci tarafında aşağıdaki gibi bir kod çalıştırıyordum
# ilhan k | 08 Aralık 2007, 18:25
json_encode ve decode sadece utf8 de çalışıyormuş.
Veritabanından latin 5 olarak çektiğimiz veriyi bastırırken nasıl UTF8 e çevirebiliriz ki? Yani bu |ç| |İ| çevirimi yeterli değil ki.
# mustafa | 10 Aralık 2007, 08:22
PHP üzerinde utf8_decode ve utf8_encode fonksiyonlarına bakmanı öneririm.
iso-8859-1 ile otomatik olarak çalışan bu fonksiyonların yorumlarında polonyaca vs. dönüşümleri için güzel örnekler var. Code-page’i alıp dönüşüm fonksiyonunu kendin yazman gerekecek.
http://us2.php.net/manual/en/function.utf8-encode.php
http://us2.php.net/manual/en/function.utf8-decode.php
Kolay Gelsin,
Mustafa
# ilhan k | 15 Aralık 2007, 14:36
$json = ‘{”aİ”:1,”bÜ”:2,”c”:3,”d”:4,”e”:5}’;
$a= print_r(json_decode(utf8_encode($json)),true);
echo utf8_decode($a);
gibi bir kullanım söz konusu ama yetersiz. Türkçe karakterler json da büyük sorun.
# ilhan k | 17 Aralık 2007, 17:17
Türkçe kullanımıyla ilgili herbişeyi (veritabanı, dosyalar, html çıktılar) UTF-8 yapılınca çözüm sağlanıyor.
Peki, stringin içinde \n gibi bir karakter olunca, daha doğrusu içeriğin bilemediğimiz bir html dizgisi gelecek olursa JSON kullanımı nasıl olacak?
Örneğin;
{”tip”: “Hizmet”, “html_verisi”:”Yapılacak iş
başka br iş
Arada bir paragraf ve rastgele
alt satırlar
” }
# Ahmet USLU | 28 Aralık 2007, 15:14
Ya arkadaşlar kusura bakmayın ben bu örnekten birşey anlamadım.Kafam karıştı diye bilirim.
Bu kadar uğraşcağımıza direk veritabından php ile yazdırmak daha kolay.
Bu örnekte json bize ne gibi avantajlar sağlamıştır biri bana açıklıya bilirmi.
# Ramazan | 25 Ocak 2008, 23:57
Ne güzel yazmışsın çok tebrik ediyorum.Sanırım ana fikir şu ki önemli olan javascript içinde en rahat kullanılabilecek veri tipleri json ile oluşturluyor ve bu bize istemci tarfında büyük kolaylıklar sağlıyor.Sağol.
Sorum ise şu php kodları üzerinde fare ile gezdirirken her bir php komutu için ayrı bir link tanımlanmış ben sanmıyorum ki bu tek tek tanımlansın bunu nasıl yaptın birde bunu cevaplarsan çok sevinirim. Şimdiden teşekkürler.
# eburhan.com » jQuery ve JSON işlemleri | 08 Mart 2008, 10:32
[…] JSON ve PHP […]