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);

?>
 
355 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.

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>