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;

http://ip-api.com/json/176.90.48.157?lang=en

Burada yazacağımız ip adresinin lokasyon bilgilerini bize detaylı olarak Json formatında veriyor. Bunun ile ilgili daha önce yazdığımız Php ile ip adresinden konum bulma başlıklı yazımızı inceleyebilirsiniz.

Ş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 "<br>";
echo $data->country;
echo "<br>";
echo $data->regionName;
echo "<br>";
echo $data->countryCode;

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

success
Turkey
Istanbul
TR

İstediğiniz değerleri bu şekilde çekip, kullanmanız mümkündür. Peki gelen verileri dizi olarak kullanmak isterseniz ne yapmanız gerekir? hani demiştik ya 2 farklı değer üzerinden dönüş alırsınız diye. Burada Json decode yaparken dizi olarak dönmesini istiyorsanız True değerini yazmanız gerekecektir.

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

Bu şekilde kullanımda değerler dizi olarak size gelir. Dizi olarak ise verileri şu şekilde çekebilirsiniz.

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

echo $data['status'];
echo "<br>";
echo $data['country'];
echo "<br>";
echo $data['regionName'];
echo "<br>";
echo $data['countryCode'];

Ekran çıktısı olarak tekrar aynı değerleri alabilirsiniz. Eğer gelen değerlerde içi içe diziler kullanılmışsa bu durumda şu şekilde o değere ulaşabilirsiniz.

echo $data['country']['regionName'];

Bu şekilde Php’de Json ile veri okuma makalemizin sonuna geliyoruz. Okuduğunuz için teşekkürler.

Admin
Admin

Bilgiye ve eğitime önem veren, paylaşmayı seven bir insan.

2 Yorumlar
Tümünü göster En Yararlı En Yüksek Puan En Düşük Puan Yorumunuzu ekleyin
  1. Hocam değişik bir paylaşım elinize sağlık fakat bunu bu şekilde javascrpitin içinde nasıl listeleyip kullanabiliriz?

  2. Ellerinize sağlık, çok ama çok faydalı oldu.

Yorum Bırakın

Translate »
Kılavuz Yazılım
Logo