0

这是我的代码:

$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 的对象无法转换为字符串

4

3 回答 3

1

尝试

var_dump($json);

这允许您打印出对象和其他非原始类型的详细信息。

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

var_dump http://php.net/manual/en/function.var-dump.php

echo http://php.net/manual/en/function.echo.php

于 2012-09-15T07:17:47.127 回答
0

用于var_dump查看变量 echo 将您的变量转换为字符串,而它是对象。您也可以添加第二个参数来json_decode($data, true)获取数组而不是对象,因为我认为这就是您想要的,因为输入是数组。

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

于 2012-09-15T07:18:47.003 回答
0

您必须将 json_decode 的第二个参数作为 true 传递,有关这些参数的更多信息,请访问:http: //php.net/manual/en/function.json-decode.php

所以你echo json_decode($json);应该改为:

print_r(json_decode($json, true));

echo更改为,print_r因为输出是数组而不是字符串...

于 2012-09-15T07:22:49.103 回答