2017-06-02 53 views
0

这应该是一个简单的问题,但我似乎无法获得过去的语法。使用特殊字符解码PHP中的JSON密钥

object(stdClass)#15 (12) { 
    ["im:name"]=> 
    object(stdClass)#14 (1) { 
    ["label"]=> 
    string(15) "Balls VS Blocks" 
    } 

一个简单的$info->im:name->label应该能够提取“球VS块”。但是,由于第一个键中有一个:,它抛弃了我的IDE,然后它会抛出一个错误。我怎样才能逃避钥匙中的这个特殊角色?

+0

我不同意,这个重复的问题,因为我搜索堆栈溢出了一会儿问这个问题之前。与重复的问题是,它不能解决标题中的php或json问题。因此做搜索它没有出现在搜索中。如果我发现重复,我不会问这个问题,因为我之前曾问过这个问题。所以这是一个搜索引擎优化问题,而不是其他任何东西......噢,好吧...... – Chad

回答

2

使用大括号并引用名称。

$info->{'im:name'}->label 

你可以看到这个in the documentation的一个例子。

+1

@Chad,还要注意你可以传递一个truthy值作为第二个参数给'json_decode()',你将得到一个关联数组而不是一个stdClass对象。然后你可以参考'$ info ['im:name']'。 –

0

你应该使用大括号,然后把钥匙以字符串:

echo $info->{"im:name"}->label;