从对象名称中带有特殊字符的JSON输出中获取变量

时间:2017-12-05 19:18:13

标签: php arrays json

我找不到如何从PHP中获取此JSON帖子的结果。

    stdClass Object
(
    [api_job_id] => 398438bf-c0a5-46fc-8774-70d2425e1ce7
    [data] => Array
        (
            [0] => stdClass Object
                (
                    [type] => MESSAGE
                    [message_id] => 15125005817130024103
                    [to] => xxx
                    [error_code] => 0
                    [#meta] => stdClass Object
                        (
                            [error] => stdClass Object
                                (
                                    [error_desc] => NO_USER
                                    [error_code] => 9
                                )

                        )

                )

        )

)

你可以看到meta前面有一个#图标。

我可以将所有数据读取到vars而不是#meta

中的数据

我尝试过很多方法: $ result = $ arrayResponse ['#meta'] ['error'] ['error_desc']; 由于#icon,它无法在PHP中运行。

知道如何从#meta中获取这些错误的值吗?

1 个答案:

答案 0 :(得分:2)

要引用名称不能生成有效变量的对象属性,可以使用大括号:

$foo = json_decode($string);
var_dump($foo->{'#meta'});

或者将truthy值作为第二个参数传递给json_decode(),然后你将获得一个数组而不是一个对象:

$foo = json_decode($string, true);
var_dump($foo['#meta']);