PHP foreach - parsed json from URL


PHP foreach - parsed json from URL

我有一个从URL调用的JSON文件。我已经检查过了,我正在从URL获取数据。
我已经尝试了很多,但我不能得到循环foreach工作-什么是错的?

<?php
$url = 'http://banen.klintmx.dk/json/ba-simple-proxy.php?url=api.autoit.dk/car/GetCarsExtended/59efc61e-ceb2-463b-af39-80348d771999';
$json= file_get_contents($url);
$data = json_decode($json);
$rows = $data->{'contents'};
foreach($rows as $row) {
echo '<p>';
$FabrikatNavn = $row->{'contents'}->{'FabrikatNavn'};
$ModelNavn = $row->{'contents'}->{'ModelNavn'};
$PrisDetailDkk = $row->{'contents'}->{'PrisDetailDkk'};
echo $FabrikatNavn . $ModelNavn . ' Pris ' . $PrisDetailDkk;
echo '</p>';
}
?>

实际问题是您试图再次访问content对象。只需将foreach代码段更改为,

foreach ($rows as $row) {
    echo '<p>';
    $FabrikatNavn = $row->FabrikatNavn;
    $ModelNavn = $row->ModelNavn;
    $PrisDetailDkk = $row->PrisDetailDkk;
    echo $FabrikatNavn . $ModelNavn . ' Pris ' . $PrisDetailDkk;
    echo '</p>';
}

使用json_decode($data, true),以便将JSON内容解析为PHP数组。比如

$rows = $data['contents'];
foreach($rows as $row) {
    echo '<p>';
    $FabrikatNavn = $row['contents']['FabrikatNavn'];
    $ModelNavn = $row['contents']['ModelNavn'];
    $PrisDetailDkk = $row['contents']['PrisDetailDkk'];
    echo $FabrikatNavn . $ModelNavn . ' Pris ' . $PrisDetailDkk;
    echo '</p>';
}

看看使用json_decode($json, true),因为这会将数据转换为关联数组,这似乎是您接近解决方案的方式。

var_dump()print_r()打印检查输出

试一下

$data = json_decode($json,true); //decode json result as array and thenloop it
print '<pre>';
print_r($data);
foreach($data as $row){
//do something here
}