Onno Eticaret




Php ile Json Veri Okuma

Json nesneye dayalı, çok hızlı, esnek bir veri değişim formatıdır. Veri alışverişi işlemlerinde günümüzde popüler olarak kullanılmaktadır.

Json yapıları genel olarak nesne (object) ve dizi (array) olmak üzere temel iki yapıdan meydana geliyor. Bu yapılar sayesinde daha anlaşılır ve kolay bir kullanım sağlıyor. Çoğu popüler programlama dilinde object, array kavramları bulunmaktadır.

İnternet ortamında bulunan birbirinden çeşitli birçok Api bulunuyor. Bazı Api’ler ilginizi çekmiştir ki Json formatında veri göndermekte yada almaktadır.

Bugün sizlere anlatacağımız konu ise tam olarak bu. Bir Api’den Json formatında aldığınız değerleri nasıl okuyup ekrana yazdırabiliriz? gelin incelemeye başlayalım.

Json Decode ile Json Verilerini Okumak

Json decode fonksiyonu, Json formatında gelen verileri çözerek Php’de kullanabileceğimiz biçimlere dönderiyor. Çözümleme işleminden sonra default’ta değerler bize Obje (Object) veya dizi (Array) olarak geri dönmektedir.

Yani Json decode fonksiyonu 2 temel biçimde bize veri dönüşü sağlıyor. Örnek olması açısından Ip test api’sine bağlanıp verileri Json olarak ekrana yazdıralım. Api url’miz şu;

Şimdi ise Php ile bu kaynaktaki verileri ekranımıza çekiyoruz. Bunun için file_get_contents() fonksiyonumuzu kullanacağız.

$kaynak = file_get_contents("http://ip-api.com/json/176.90.48.157?lang=en");

echo $kaynak;

Kodumuzu çalıştırdığımızda ekranımıza şu şekilde değerler dönecektir.

{"status":"success","country":"Turkey","countryCode":"TR","region":"34","regionName":"Istanbul","city":"Kartal","zip":"34860","lat":40.8999,"lon":29.2126,"timezone":"Europe/Istanbul","isp":"Turkcell Internet","org":"","as":"AS16135 TURKCELL ILETISIM HIZMETLERI A.S.","query":"176.90.48.157"}

Bakın burada yazdığımız ip adresinin bulunduğu Ülke, şehir, ilçe, posta kodu, plaka kodu, zaman dilimi, internet sağlayıcısı gibi bir çok değeri bizlere Json formatında verdi.

Şimdi ise asıl işimiz olacak Json decode fonksiyonumuz ile bu değerleri kullanabileceğimiz değerlere dönüştürüyoruz.

$kaynak = file_get_contents("http://ip-api.com/json/176.90.48.157?lang=en");
$data = json_decode($kaynak);

Bu şekilde obje olarak kullanabileceğimiz formata dönüştürdük. Verilere ise şu şekilde ulaşabiliyoruz.

$kaynak = file_get_contents("http://ip-api.com/json/176.90.48.157?lang=en");
$data = json_decode($kaynak);

echo $data->status;
echo "
"; echo $data->country; echo "
"; echo $data->regionName; echo "
"; echo $data->countryCode;

Bu şekilde dönen değerlere obje olarak ulaşabilirsiniz. Ekran çıktısı olarak şöyle bir sonuç alırsınız.