在 PHP Foreach 中循环 JSON 字符串响应


Loop JSON String response in PHP Foreach

我正在尝试在PHP中打印JSON响应的值。里面的内容是:

data
local
acao
detalhes

代码:

<?php
header('Content-type: text/html; charset=UTF-8');
$url = "http://developers.agenciaideias.com.br/correios/rastreamento/json/RJ290474594CN";
$c_url = file_get_contents($url); 
$c_url = utf8_encode($c_url); 
$results = json_decode($c_url); 
echo $c_url;
?>

我尝试使用foreach但没有成功在所述 JSON 响应中实现它们。

下面是一个 JSON 字符串示例:

[{"data":"07'/12'/2014 11:19","local":"CHINA - CHINA'/CN","acao":"postado","detalhes":"-"},{"data":"09'/12'/2014 12:03","local":"CHINA - CHINA'/CN","acao":"encaminhado","detalhes":"Em tr'u00e2nsito para Unidade de Tratamento Internacional - BRASIL'/BR"},{"data":"29'/12'/2014 12:34","local":"UNIDADE TRAT INTERNACIONAL PARANA - Curitiba'/PR","acao":"conferido","detalhes":"Recebido'/Brasil "}]

如果您只想打印值,只需使用 foreach 相应地打印它们即可。获得响应后,使用 json_decode() .这种ut8f_encode()是多余的。

$url = "http://developers.agenciaideias.com.br/correios/rastreamento/json/RJ290474594CN";
$data = json_decode(file_get_contents($url), true); 
foreach($data as $values) {
    echo $values['data'] . '<br/>';
    echo $values['local'] . '<br/>';
    echo $values['acao'] . '<br/>';
    echo $values['detalhes'] . '<br/>';
}

示例输出

或:

$url = "http://developers.agenciaideias.com.br/correios/rastreamento/json/RJ290474594CN";
$data = json_decode(file_get_contents($url), true); 
foreach($data as $values) {
    foreach($values as $key => $value) {
        echo "{$key}: $value <br/>";
    }
    echo '<hr/>';
}