v2.5.2
Giriş yap

Json Decode Sorunu

wisex
358 defa görüntülendi

Merhabalar,

http://hasanadiguzel.com.tr/api/akaryakit/sehir=ANKARA

bu linkteki verileri json decode ile yazdırmak istiyorum ancak boş ekran çıkıyor.
Alttaki kodumda örneğin developer name i yazdırabiliyorum ancak ben mesela Motorin(Eurodiesel)_TL\/lt yazdırmak istediğimde parantezlerden ötürü hata alıyorum.

<?php
 
error_reporting(0);
$url = "http://hasanadiguzel.com.tr/api/akaryakit/sehir=ANKARA";

$ch = curl_init();
curl_setopt( $ch, CURLOPT_URL, $url );
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1 );
$wisex = json_decode( curl_exec( $ch ) );

$name = $wisex->developer->name;

echo $name;
   
?>
Cevap yaz
Cevaplar (5)
bbakirtas
504 gün önce

$json = file_get_contents('http://hasanadiguzel.com.tr/api/akaryakit/sehir=ANKARA');
$data = json_decode($json,true);
$veriler = $data['data'];
print_r($veriler);

mubado
504 gün önce

Curl kullanmak yerine file_get_contents kullanabilirsin

$url = "https://hasanadiguzel.com.tr/api/akaryakit/sehir=Aksaray&quot;;

$file = file_get_contents($url);
$json = json_decode($file,true);
foreach ($json['data'] as $key=>$value){
    // Bu kısımdada almak istediklerini alabilirsin
}


Bunu fonksiyon da yapabilirsin
wisex
505 gün önce

@trsherlock hocam teşekkür ederim data verisi her ilde farklı geliyor onu foreachle nasıl aşarım sizce?

trsherlock
507 gün önce

Sorunu çözdüm süslü parantez içinde => data->{"anahtar"} gibi kullanırsan sorunun çözülür.

Kaynak: https://www.php.net/manual/en/class.stdclass.php

<?php
    error_reporting(0);
    $url = "http://hasanadiguzel.com.tr/api/akaryakit/sehir=ANKARA";
    $ch = curl_init();
    curl_setopt( $ch, CURLOPT_URL, $url );
    curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1 );
    $wisex = json_decode( curl_exec( $ch ) );

    $name = $wisex->data->{"17,62"}->{"Kursunsuz_95(Excellium95)_TL/lt"};
    echo $name;
?>
trsherlock
507 gün önce

Bu nasıl çözülür bilmiyorum. İlgimi çekti araştıracağım. İşini görülmesi açısından şimdilik aşağıdaki gibi kullanabilirsin.

<?php
    error_reporting(0);
    $url = "http://hasanadiguzel.com.tr/api/akaryakit/sehir=ANKARA";
    $ch = curl_init();
    curl_setopt( $ch, CURLOPT_URL, $url );
    curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1 );
    $wisex = json_decode( curl_exec( $ch ), 1 );
    // İkinci parametre true olursa diziye dönüştürür. Boşsa veya false olursa ilişkisel nesneye dönüştürülür.
    print_r($wisex["data"]["17,62"]["Motorin(Eurodiesel)_TL/lt"]);
?>