【问题标题】:Forward slashes in stdClass object parsing JSON?解析JSON的stdClass对象中的正斜杠?
【发布时间】:2011-08-10 16:11:48
【问题描述】:

我正在尝试访问我使用 json_decode(基于来自 URL 的结果)创建的 JSON 对象中的数据。回应是:

stdClass Object
(
    [/guid/9202a8c04000641f8000000016f4c9cd] => stdClass Object
        (
            [code] => /api/status/ok
            [result] => stdClass Object
                (
                    [

..

如何访问参数“code”?

谢谢!

【问题讨论】:

    标签: php json stdclass


    【解决方案1】:

    你可以使用这个稍微有点古怪的语法:

    print $stdclass->{'/guid/9202a8c04000641f8000000016f4c9cd'}->code;
    

    它专门用于非 ascii 属性名称。 (还有带双引号的变体,这对于变量->{"attr_$index"} 属性名称很有用。)


    另一种选择是让json_decode 创建一个关联数组,将 TRUE 作为第二个参数传递。

    【讨论】:

    • 作为后续,我可以通过任何方法访问[/guid/9202a8c04000641f8000000016f4c9cd](比如遍历,获取stdClass的名称)。
    • 是的,这是可能的。因为当您通过属性foreach 时,您正在使用$obj->$varname 访问对象。在这种情况下,$varname 可以是任何东西(不包括 \0 字符)。对对象的 foreaching 也为您提供了真正的属性名称。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-05
    • 2017-10-01
    • 2017-06-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多