首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将JSON转换为PHP和Echo?

将JSON转换为PHP和Echo?
EN

Stack Overflow用户
提问于 2017-10-31 16:34:21
回答 3查看 37关注 0票数 1

下面是我的PHP代码:

代码语言:javascript
复制
<?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:

代码语言:javascript
复制
{
   "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文件,因此我不太确定我在哪里出错。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-10-31 16:38:42

在访问数组时需要进行小的修正,如下所示

代码语言:javascript
复制
foreach ($stats['results']['result'] as $row) {
        echo $row['conversions'] . "<br />";
}

因为当您执行json_decode时,您将得到如下所示的数组

代码语言:javascript
复制
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
                        )

                )

        )

)
票数 1
EN

Stack Overflow用户

发布于 2017-10-31 16:39:31

应该是这样的:

代码语言:javascript
复制
<?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

票数 0
EN

Stack Overflow用户

发布于 2017-10-31 16:52:01

$stats = json_decode($json,真);

代码语言:javascript
复制
foreach ($stats['results']['result'] as $row) {
            echo $row['conversions'] . "<br />";
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47040254

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档