Php İle Json Okuma ve Oluşturma

Php 5 ile gelen birçok yenilikten biri de JavaScript Object Notation(JSON) ile kodlanmış dosyaları okuyabilmemizi ve oluşturabilmemizi sağlayan Json kütüphanesidir. Bu kütüphaneyi kullanabilmek için php versiyonumuzun minumum 5.2.0 olması gerekiyor. Json kütüphanesin de json_decode, json_encode ve json_last_error olmak üzere 3 fonksiyon bulunuyor. Dinamik flash projelerinde, Ajax işlemlerinde Php ile veri alışverişi yaparken xml yerine json kullanmak daha iyi performans sağlayacaktır. Xml gibi bir çok tag açıp kapanması gerekmediği için, daha az satırda istediğimiz veriyi paylaşabiliyoruz. Bu da boyutun daha küçük olmasını sağlıyor ve performansı olumlu yönde etkiliyor.

Json_decode : Json ile kodlanmış içeriği çözerek obje haline getirir.
Json_encode : Php’de oluşturduğumuz bir diziyi veya objeyi json ile kodlanmış hale getirir.
json_last_error : json_encode veya json_decode kullandığımızda oluşan son hatayı görmemizi sağlar.

// “user” isminde bir dizi oluşturuyorum.
$user = array(
‘nick’ => ‘nick’,
‘mail’ => ‘test@mail.com’,
‘web’ => ‘www.webtasarimozelders.com’
);

// “user” dizisini Json ile kodlanmış hale getiriyorum ve değişkene atıyorum.
$json = json_encode($user);

// Değişken değerini ekrana basıyorum.
echo $json;

Yukarıda ki kodları çalıştırdığımızda :

{“nick”:”nick”,”mail”:”test@mail.com”,”web”:”www.webtasarimozelders.com”}

çıktısı ile karşılaşıyoruz. Gördüğünüz gibi php ile oluşturduğumuz diziyi çok kolay bir şekilde json formatına çevirebiliyoruz.

// Json formatında ki veri
$json = ‘{“nick”:”nick”,”mail”:”test@mail.com”,”web”:”www.webtasarimozelders.com”}’;

// Json içeriğini php ile kullanabilmek için obje haline çeviriyorum.
$user = json_decode($json);

// “user” isimli objenin elemanlarını ekrana yazdırıyorum.
echo ‘Nick : ‘ . $user->nick;
echo ‘<br>’;
echo ‘Mail : ‘ . $user->mail;
echo ‘<br>’;
echo ‘Web : ‘ . $user->web;

Yukarıda gördüğünüz örnek sayesinde json formatında ki veriyi, php ile kullanabilmemiz için bir nesne haline çevirebiliyoruz. Burada dikkat etmemiz gereken dönüştürme işleminden sonra array olarak değil, obje olarak dönüyor.

json_decode($json,TRUE);

json_decode fonksiyonuna 2. parametre olarak “True” değerini vererek, dizi formatında dönüştürme işleminin yapılmasını sağlayabiliriz.

// Json formatında ki veri
$json = ‘Json ile kodlanmamis veri’;

// Json içeriğini php ile kullanabilmek için obje haline çeviriyorum.
$user = json_decode($json,TRUE);

echo json_last_error();

Json formatında olmayan bir içeriği, json gibi çözümleyemeye çalıştığımda bir hata ile karşılaşıyorum. json_last_error() fonksiyonundan integer tipinde bir değer dönüyor. Buradan dönen hata değerini :

    JSON_ERROR_NONE
    JSON_ERROR_DEPTH
    JSON_ERROR_CTRL_CHAR
    JSON_ERROR_SYNTAX
    JSON_ERROR_UTF8

sabitleri ile kontrol edebilirsiniz. Daha detaylı kullanım ve örnekler için php.net adresini ziyaret edebilirsiniz.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir