PHP:问题解码JSON数组

时间:2016-01-13 12:22:51

标签: php arrays json

我正在尝试解码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"
       }
      }
     ]
    }'
);

我已经删除了一些字段,以使此查询更紧凑。任何人都可以在这里提出问题的建议吗?

由于

4 个答案:

答案 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解码返回另一个对象。