使用PHP进行JSON解码:密钥以@符号开头

时间:2013-05-14 03:57:19

标签: php json

JSON就像

{
    "@http_status_code": 200,
    "@records_count": 200,
    "warnings": [],
    "query": { ... ...

在PHP中

$data = json_decode($json_entry);
print $data->@http_status_code; //returns error
print $data->http_status_code; //returns nothing

如何检索状态代码?

5 个答案:

答案 0 :(得分:3)

1)以对象方式

$data = json_decode($json_entry);
print $data->{'@http_status_code'}; 

2) OR true

中将第二个参数作为json_decode传递,以数组的方式使用
$data = json_decode($json_entry, true);
print $data['@http_status_code'];

答案 1 :(得分:1)

要访问名称中带有时髦字符的对象属性,请引用该名称并将其粘贴在大括号中。

print $data->{'@http_status_code'};

或者,说$data = json_decode($json_entry, true);将数据作为数组返回。

答案 2 :(得分:1)

执行此操作时,PHP cwill会出现语法错误:

$data->@http_status_code; 

它查找不存在的$http_status_code变量

所以为了完成这项工作,你必须这样做:

echo $data->{'@http_status_code'};

答案 3 :(得分:1)

尝试json_decode以数组形式获取json ..

$json_array     =  json_decode($data, true);
$required_data  = $data['required_key']

参考您的特定问题..您将获得数组

Array
(
[@http_status_code] => 200
[@records_count] => 200
[warnings] => Array
    (
    )
   ....
) 

因此您可以$data['@http_status_code']

访问您的数据

答案 4 :(得分:0)

试试这个:

$data = json_decode($json_entry, true);
print $data["@http_status_code"];