PHP ile JSON Parse Etmek

Bu yazımızda PHP ile JSON etmeyi göstermeye çalışacağım…

Öncelikle aşağıda bulunan linkteki JSON kodunu isim.txt olarak bilgisayarınıza kaydedin.

Tıklayın.

JSON Parse etmek için json_decode fonksiyonunu kullanacağız.

json_decode fonksiyonu iki farklı şekilde çalışıyor. Birisi nesne şeklinde diğeri array şeklinde çalışıyor.

Örnek olarak verdiğim JSON’daki sadece Click Here yazısını ekrana yazalım.

Not: Dosya büyük olduğu için ben çekeceğim. Ufak JSON’larda aynı sayfada da işlem yapabilirsiniz.

<?php
$dosyayicek = file_get_contents("isim.txt"); /* isim.txt dosyasının çalıştığımız dizinde olduğunu varsaydım. */

$decodeislemi = json_decode($dosyayicek, true); /* eğer buradaki true yazan yer false yapılırsa veya tamamen kaldırılırsa nesne olarak işlem yapılabilir. */

echo "<pre>";
print_r ($decodeislemi);
echo "</pre>";
/* Şimdi gelen JSON'ı decode ettikten sonra ekrana bastık. Bakalım nasıl bir şeymiş */
echo "<hr>";

echo ($decodeislemi['widget']['feature']['data']); /* Sırayla giderek Click Here'a ulaştık. */

?>

Şimdide nesne ile yapalım.

<?php
$dosyayicek = file_get_contents("isim.txt");

$decodeislemi = json_decode($dosyayicek);

echo "<pre>";
print_r ($decodeislemi); /*Bu sefer ekrana biraz daha farklı bir sonuç bastı. */
echo "</pre>";

echo "<hr>";

echo ($decodeislemi->widget->feature->data);

?>
 
401 Kudos
Don't move
  1. verdiğiniz yöntemi twitter api üzerinde denedim. son aşamaya kadar geldim. print_r ($decodeislemi)ile ekrana bastırdım da. dönen bu veriyi parçalayamıyorum. nasıl yapabilirim sizin widget->feature->data örneğindeki gibi bir yol izliyorum ama bana gelen çıktıda bu olmuyor sanırım. file_get_contents da isim.txt yerine mesela https://api.twitter.com/1/statuses/user_timeline.json?include_entities=true&include_rts=true&screen_name=twitterapi&count=1 adresini çekerek aldığım çıktıyı görebilirsiniz. bunu bölüp istediğim kısmı nasıl alacağım?

    • Merhaba,

      verdiğiniz linkte örnek olarak name bölümüne şöyle erişebilirsiniz.


      $site = file_get_contents('https://api.twitter.com/1/statuses/user_timeline.json?include_entities=true&include_rts=true&screen_name=twitterapi&count=1');

      $islem = json_decode($site);

      echo $islem[0]->user->name;

  2. tamamdır. çok teşekkür ederim yardımınız için.

  3. Merhaba Benim Bir Sorunum var
    Sorunum tam olarak şu
    test.php isimli sayfamda şunlar var
    [
    “ali”,”ayse”,”ahmet”,”ayhan”
    ]
    json.php isimli dosyamda ise şunlar var

    //

    İki dosyamda aynı dizinde fakat json.php adresine gittiğimde bomboş bir sayfayla karşılaşıyorum
    fakat decode işlemini yapmadan echo ile yazdırırsam test.php isimli sayfadan gelen verileri ekrana basıyor decode yapınca basmıyor kodu nasıl yazmam gerekiyor şimdiden teşekkürler not baştaki yorum işaretlerini yorum yapabilmek için koydum

Yorum Yap


Not - Bunları KullanabilirsinizHTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>