2011-04-21 83 views
0

我试图访问我使用json_decode(基于URL的结果)创建的JSON对象内的数据。答案是:stdClass对象正斜杠解析JSON?

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

.. 

如何访问参数“代码”?

谢谢!

回答

7

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

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

它是专门用于非ASCII属性名。 (还有用双引号的变体,其是用于可变->{"attr_$index"}属性名称是有用的。)


另一种选择是将有json_decode创建关联数组代替,通过使作为TRUE第二参数。

+0

作为一个后续,我可以通过任何方法访问[/ guid/9202a8c04000641f8000000016f4c9cd](如迭代,获取stdClass的名称)。 – Rio 2011-04-22 01:47:38

+0

是的,这是可能的。因为当你对属性进行foreach时,你正在用'$ obj - > $ varname'访问对象。在这种情况下'$ varname'可以是任何东西(不包括\ 0字符)。在对象上传递也给你真正的属性名称。 – mario 2011-04-22 05:59:02