下面是我的PHP代码:
<?php
$json_url = "REDACTED";
$json = file_get_contents($json_url);
$stats = json_decode($json, true);
foreach ($stats as $row) {
echo $row['results']['result']['conversions'] . "<br />";
}
?>以下是JSON:
{
"metadata":{
"iserror":"false",
"responsetime":"0.07s"
},
"results":{
"first":1,
"last":99,
"total":99,
"result":[
{
"total_visitors":"3",
"visitors":"3",
"conversions":"0"
},
{
"total_visitors":"26",
"visitors":"26",
"conversions":"0"
},
{
"total_visitors":"13",
"visitors":"13",
"conversions":"0"
},
{
"total_visitors":"1",
"visitors":"1",
"conversions":"0"
},
{
"total_visitors":"1",
"visitors":"1",
"conversions":"0"
}
]
}
}本质上,我只是试图响应json文件中每个部分的“转换”。
从未使用PHP处理过JSON文件,因此我不太确定我在哪里出错。
发布于 2017-10-31 16:38:42
在访问数组时需要进行小的修正,如下所示
foreach ($stats['results']['result'] as $row) {
echo $row['conversions'] . "<br />";
}因为当您执行json_decode时,您将得到如下所示的数组
Array
(
[metadata] => Array
(
[iserror] => false
[responsetime] => 0.07s
)
[results] => Array
(
[first] => 1
[last] => 99
[total] => 99
[result] => Array
(
[0] => Array
(
[total_visitors] => 3
[visitors] => 3
[conversions] => 0
)
[1] => Array
(
[total_visitors] => 26
[visitors] => 26
[conversions] => 0
)
[2] => Array
(
[total_visitors] => 13
[visitors] => 13
[conversions] => 0
)
[3] => Array
(
[total_visitors] => 1
[visitors] => 1
[conversions] => 0
)
[4] => Array
(
[total_visitors] => 1
[visitors] => 1
[conversions] => 0
)
)
)
)发布于 2017-10-31 16:39:31
应该是这样的:
<?php
$json_url = "REDACTED";
$json = file_get_contents($json_url);
$stats = json_decode($json, true);
if ($stats && isset($stats['results']) && isset($stats['results']['result'])) {
foreach ($stats['results']['result'] as $row) {
echo $row['conversions'] . "<br />";
}
}
?>因此,检查是否在JSON中设置了需要的字段,然后循环每个result记录以获得conversions。
发布于 2017-10-31 16:52:01
$stats = json_decode($json,真);
foreach ($stats['results']['result'] as $row) {
echo $row['conversions'] . "<br />";
}https://stackoverflow.com/questions/47040254
复制相似问题