Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP中的JSON数组解析_Php_Json_Matomo - Fatal编程技术网

PHP中的JSON数组解析

PHP中的JSON数组解析,php,json,matomo,Php,Json,Matomo,请帮助我如何在PHP中解析以下JSON 我使用PIWIK报告api获得了以下JSON。如何在PHP中从下面的json中获取PageTitle。我尝试了以下JSON解析代码 $json = '[ { "idSite": "1", "idVisit": "84", "visitorId": "f08dc1f2a3e1f839", "visitorType": "returning", "visitorTypeIcon": "plugins/Live/image

请帮助我如何在PHP中解析以下JSON

我使用PIWIK报告api获得了以下JSON。如何在PHP中从下面的json中获取PageTitle。我尝试了以下JSON解析代码

$json = '[
{
    "idSite": "1",
    "idVisit": "84",
    "visitorId": "f08dc1f2a3e1f839",
    "visitorType": "returning",
    "visitorTypeIcon": "plugins/Live/images/returningVisitor.gif",
    "visitConverted": "0",
    "visitConvertedIcon": null,
    "visitEcommerceStatus": "none",
    "visitEcommerceStatusIcon": null,
    "searches": "0",
    "events": "4",
    "actions": "9",
    "actionDetails": [
        {
            "type": "action",
            "url": "http://mywwebsiteurl.com",
            "pageTitle": "PageTitle",
            "pageIdAction": "110"
        }
    ]
}
]';

$visits = json_decode($json, true);
foreach ($visits->actionDetails as $data) { 
      echo $data->pageTitle;
}
我收到以下通知

Notice: Trying to get property of non-object 
如何从上面的JSON获取页面标题

应该是:-

$visits = json_decode($json, true);
foreach ($visits[0]["actionDetails"] as $data) { 
      echo $data["pageTitle"];
}

您将第二个属性设置为TRUE-因此根据手册。 如果为TRUE,则返回的对象将转换为关联数组

试着用数组替换

foreach ($visits['actionDetails'] as $data){
    echo $data['pageTitle'];
} 
json_decode()的第二个参数控制返回类型。如果省略或设置为false(默认值),则返回一个对象。如果设置为true,则返回一个数组


您的代码,
json\u decode($json,true),将返回一个数组,但您随后尝试将该数组用作对象。

$visits->actionDetails['pageTitle']应访问数据。当您将true作为第二个参数时,它将返回一个数组而不是stdClass。感谢您的回复。我得到了页面标题。谢谢亚历克斯的回复。