Вот мой 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.
Никогда не работал с файлом JSON, использующим PHP для, поэтому я не совсем уверен, где я ошибаюсь с этим.
Нужна небольшая коррекция в доступе к массиву, как показано ниже
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
)
)
)
)
Это должно быть похоже на следующее:
<?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
,
$ stats = json_decode ($ json, true);
foreach ($stats['results']['result'] as $row) {
echo $row['conversions'] . "<br />";
}