在php中从json_decode()获取值时出错?

在php中从json_decode()获取值时出错?,php,json,object,space,Php,Json,Object,Space,我有一个示例代码: $description = '{"2G Network":"GSM 850 / 900 / 1800 / 1900 ","3G Network":"HSDPA 850 / 900 / 1700 / 1900 / 2100 "}'; $data = json_decode($description); echo $data->2G Network; // OR echo $data['2G Network']; 结果是错误,如何修复它 试试这个: echo $da

我有一个示例代码:

$description = '{"2G Network":"GSM 850 / 900 / 1800 / 1900 ","3G Network":"HSDPA 850 / 900 / 1700 / 1900 / 2100 "}';
$data = json_decode($description);
echo $data->2G Network;

 // OR echo $data['2G Network'];
结果是错误,如何修复它

试试这个:

echo $data->{'2G Network'};

问题不在于JSON,而是您试图访问的对象属性中有一个空格。如果使用大括号
{
}
,则可以使用字符串来命名要获取/设置的属性。

可以删除2G和网络之间的空格,也可以使用
json\u decode($description,true)
将json解码为数组。您可以调用函数来删除json中的空格

见下文

Brad解决方案是完美的,如果您想从阵列中获得类似的解决方案,您可以像这样做:

$description = '{"2G Network":"GSM 850 / 900 / 1800 / 1900 ","3G Network":"HSDPA 850 / 900 / 1700 / 1900 / 2100 "}';
$data = json_decode($description, true);
echo $data['2G Network'];

结果:尝试获取非object属性这与问题无关。PHP JSON解析器(或任何有效的JSON解析器)不关心属性名或字符串值之外的空白。