我正在尝试解码JSON数组,但是我收到以下错误:
类stdClass的对象无法转换为字符串
JSON编码数组如下所示:
echo json_decode('{
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [
149.23531999999997,
-35.352484
]
},
"properties": {
"Fcilty_typ": "MO",
"gx_id": "1"
}
}
]
}'
);
我已经删除了一些字段,以使此查询更紧凑。任何人都可以在这里提出问题的建议吗?
由于
答案 0 :(得分:2)
您无法回显您解码的JSON(这是一个对象),但您可以尝试var_dump
:
var_dump(json_decode('{
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [
149.23531999999997,
-35.352484
]
},
"properties": {
"Fcilty_typ": "MO",
"gx_id": "1"
}
}
]
}'
));
答案 1 :(得分:2)
在JSON中,
{
字符表示对象的开头。
[
字符表示数组的开头。
因此当你执行json_decode()
时,无论json结构表示什么,它都需要一个字符串并从中取出。因此,在您的情况下,它会创建一个类型为stdClass
的PHP对象,其属性等
你不能echo
一个对象,但你可以在数组和对象上使用这些函数
print_r() a nice simple display of the data
var_dump() a more complex to read display of the data in my opinion
but it does show data types and sizes
var_export() similiar to print_r()
您还可以向json_decode($string, true)
添加第二个paameter,它会将数据结构的json字符串表示中找到的对象转换为Arrays,尽管我从未见过需要它。
答案 2 :(得分:0)
您正在尝试echo
一个班级,而echo
只是打印字符串。
尝试更改echo
的{{1}}。
var_dump
将显示类属性。
答案 3 :(得分:0)
您正在解码JSON数据并将其回显。不要忘记回显仅适用于字符串,JSON解码返回另一个对象。