如何在PHP中修复关于stdClass的错误

如何在PHP中修复关于stdClass的错误,php,json,Php,Json,这是我的代码: $array = array( "Birds" => array( 'group' => 1, "Bird" => array( array('id' => 1, 'img' => "img1.png", 'title' => "kate"), array('id' => 2, 'img2' => "img2.png", 'title' => "mary") )) ); $json = json_encode($arr

这是我的代码:

$array = array(
"Birds" => 
array(
'group' => 1,
"Bird" => array(

array('id' => 1, 'img' => "img1.png", 'title' => "kate"),
array('id' => 2, 'img2' => "img2.png", 'title' => "mary")
)) );


$json = json_encode($array);
echo json_decode($json);
输出为:

//JSON OUTPUT {"Birds":{"group":1,"Bird":[{"id":1,"img":"img1.png","title":"cardinal"},{"id":2,"img2":"img2.png","title":"bluejay"}]}}
类stdClass的对象无法转换为字符串

var_dump($json);
这允许您打印出对象和其他非灵长类的详细信息

回显用于字符串-您的json解码字符串将是类型为
stdClass

请参见
var\u dump


请参见
echo
使用
var\u dump
查看变量echo将变量转换为字符串,而它是对象。另外,您还可以将第二个参数添加到
json_decode($data,true)
以获取数组而不是对象,因为我假设这就是您想要的,因为输入是数组


关于对象转换为字符串您可以阅读

您必须将json_decode的第二个参数作为true传递,有关这些参数的更多信息,请访问:

所以你的
echo-json\u解码($json)应更改为:

print_r(json_decode($json, true));

echo
更改为
print\r
,因为输出是一个数组而不是字符串…

请您将这个问题改写为更清楚一些?
echo
将尝试在打印字符串之前将其参数转换为字符串,这对数组不起作用,对某些对象根本不起作用。这里不清楚您的目标是什么,但是如果您想检查解码对象,可以使用
var\u dump
var\u export
而不是
echo
。尝试打印($json)。我想知道为什么这段代码会产生这样的错误:stdClass类的对象无法转换为string@sebi:
var\u dump
总是做一些事情如果没有true,您将收到一个stdClass对象作为输出,如果是true,您将收到一个数组,这就是区别,您可以更轻松地使用数组,并且可以回显它(您将看到数组,但您将不再收到该错误)。。。