Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/90.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_Html_Json_Api - Fatal编程技术网

Php Json解析错误

Php Json解析错误,php,html,json,api,Php,Html,Json,Api,当我解析trip advisor提要时,不断出现此错误。正在尝试提取用户名 可捕获的致命错误:类stdClass的对象无法转换为字符串 这是我的代码和提要的链接 <?php function getCode($url) { $ch=curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_USERAGENT, "MozillaXYZ/1.0"); curl_setop

当我解析trip advisor提要时,不断出现此错误。正在尝试提取用户名

可捕获的致命错误:类stdClass的对象无法转换为字符串

这是我的代码和提要的链接

<?php
function getCode($url)
{
    $ch=curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_USERAGENT, "MozillaXYZ/1.0");
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
    $output = curl_exec($ch);
    curl_close($ch);
    return $output;
}
$html=getCode("http://api.tripadvisor.com/api/partner/1.0/location/258705/reviews");
$json = json_decode($html);
$cnt=0;
foreach ($json as $item)
{
    foreach($item as $row)
    {
        echo "Image Url:".$row->text."<br>";
        echo "ID:".$row->id."<br>";
        //username
        foreach($row->user as $row1)
        {
            echo $row1."<br>";

        }


    }
    echo "<br><br>";
}

您需要在json_decode函数中将assoc属性设置为true

试试这个:

$json = json_decode($html,true);
阅读更多关于json_解码的信息


作为下一篇堆栈溢出文章的建议,不要共享API密钥或其他敏感信息

print_r($row1);
stdClass Object ( [id] => [name] => Mahwah )
试着改变

$row1."<br>";
$row1.“
”;

$row1->name.“
”;
只要在字符串上下文中表示stdClass(例如,
echo
),就会出现此错误,因为字符串上下文需要输出字符串(可以是对象,但仅限于实现
的字符串()
这不是stdClass的情况。在这种情况下,没有必要设置它。刚刚意识到,现在,我关于他不共享仅合作伙伴api密钥的观点仍然有效。哈哈,最好只提供示例性json而不是密钥:)-@hakre至少我从这个xD中获得了一个免费的trip advisor密钥(jk jk)不管怎么说,这是一个测试密钥:p这对我也适用。对我不适用。我现在收到这个错误消息“注意:尝试获取非对象的属性”看-你不能回显对象。熟悉正在使用的数据结构。
$row1->name."<br>";