JSON Nedir?
JSON, JavaScript Obje Notasyonu kelimelerinin kısaltmasıdır. XML gibi dillere alternatif olarak ortaya çıkmıştır ve direkt JavaScript içerisinde kullanılabilmek gibi güzel özellikleri mevcuttur. PHP, JavaScript, Java, Perl, Python, C, C++ vb. birçok dille entegre çalışabilmesi için gerekli hazır fonksiyon, kütüphane mevcuttur ve bu diller arası veri alışverişi için kullanılır. Okunurluğu daha kolay ve benzerlerine göre boyutu da ~%15 daha azdır.
JSON Kullanımı
{
"diller": {
"asp":"Active Server Pages",
"jsp":"Javascript Server Pages",
"php": {
"aciklama":"Personal Home Page",
"fonksiyonlar":[
{
"fonksiyonAdi":"json_decode",
"ozelligi":"Json Çözümleme Fonksiyonu",
"kullanimi":"json_decode(json,oznitelik)"
},
{
"fonksiyonAdi":"json_encode",
"ozelligi":"Json Çeviri Fonksiyonu",
"kullanimi":"json_encode(dize,secenekler)"
},
{
"fonksiyonAdi":"json_last_error",
"ozelligi":"Json Hata Çözümleme Fonksiyonu",
"kullanimi":"json_last_error()"
}
]
}
}
}
PHP ile JSON işlemleri
Yukarıda da bahsettiğimiz gibi PHP'nin de JSON işlemek için kullanılabilecek 3 farklı fonksiyon mevcuttur. Bunlarla JSON metnini çözümleyebilir, dizileri JSON'a çevirebilir ve JSON işlemlerinde hata çözümlemeleri yapabilirsiniz.
Örneklerle fonksiyonları açıklamaya geçelim;
<?php
$JSON = '
{
"diller": {
"asp":"Active Server Pages",
"jsp":"Javascript Server Pages",
"php":"Personal Home Page"
}
}
';
//obje olarak kullanım için
$obje = json_decode($JSON);
//standart dizi (array) kullanımı..
$dizi = json_decode($JSON, true);
//diziyi ekrana basalım..
var_dump($obje);
var_dump($dizi);
?>
Çıktısı;
object(stdClass)#1 (1) {
["diller"]=>
object(stdClass)#2 (3) {
["asp"]=>
string(19) "Active Server Pages"
["jsp"]=>
string(23) "Javascript Server Pages"
["php"]=>
string(18) "Personal Home Page"
}
}
array(1) {
["diller"]=>
array(3) {
["asp"]=>
string(19) "Active Server Pages"
["jsp"]=>
string(23) "Javascript Server Pages"
["php"]=>
string(18) "Personal Home Page"
}
}
JSON çözümlemeleri yukarı da örneklediğimiz şekilde yapılır. Çözümlemenin tersi olarak php ile JSON çıktılar üretmekte mümkündür. Bunun için de örnekleme yaparak inceleyelim;
<?php
$dizi = array(
'diller'=> array(
'asp'=>'Active Server Pages',
'jsp'=>'Java Server Pages',
'php'=>'Personal Home Page'
)
);
//diziyi JSON'a çevirelim..
echo json_encode($dizi);
?>
Çıktısı;
{"diller":{"asp":"Active Server Pages","jsp":"Java Server Pages","php":"Personal Home Page"}}
Bu örnekten fonksiyonun anlaşıldığını varsayıyorum, dizi (array) kullanımı ile ilgili gerekli bilgiye sahip olduğunuzu varsaymak zorundayım yoksa bu makale içinden çıkılmaz uzunlukta bir makaleye dönebilir (:
Ve son olarak json işlemleri (decode/encode) sırasında aldığımız hataların ayıklanması için json_last_error() kullanımını örnekleyelim, örnek için php.net'te bulunan güzel bir kullanım mevcut, aynen kullanıyorum örneği;
<?php
// Geçerli json dizgesi
$json[] = '{"php": "Personal Home Page"}';
// Geçersiz json dizgesi sözdizimi hatasına sebep
// olur, bu durumda biz tırnak için ' yerine "
// kullanırız
$json[] = "{'php': 'Personal Home Page'}";
foreach($json as $string)
{
echo 'Çözümlenen: ' . $string;
json_decode($string);
switch(json_last_error())
{
case JSON_ERROR_DEPTH:
echo ' - Azami yığın derinliği aşıldı';
break;
case JSON_ERROR_CTRL_CHAR:
echo ' - Beklenmeyen kontol karakteri bulundu';
break;
case JSON_ERROR_SYNTAX:
echo ' - Sözdizimi hatası, kusurlu JSON';
break;
case JSON_ERROR_NONE:
echo ' - Hatasız';
break;
}
// \n işlemi yapar ve satırı alta alır..
echo PHP_EOL;
}
?>
Php ile JSON işlemleri buraya kadar. JSON yazılımında dikkat edilmesi gereken en önemli özellik her nesnenin " (çift tırnak) ile ayrılıyor olmasıdır. Data olmadığında null ve sayılarda tırnaksız kullanım yapılabilir..
SONUÇ: PHP ve yeni gözdemiz JSON ile tam uyumlu çalışabilir, diğer platform / diller ile iletişimi daha esnek ve daha az boyutlu olarak yapabilirsiniz.
jQuery ve JSON için eBurhan'ın güzel makalesini inceleyebilirsiniz.
Kaynaklar:
Hatalarımız için şimdiden özür dileriz, yeni makale isteklerinizi lütfen iletiniz..
0 yorum:
Yorum Gönder