我有一个示例代码:
$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,而是您尝试访问的对象属性中有一个空格。如果您使用花括号{
}
,那么您可以使用字符串来命名您想要获取/设置的属性。
布拉德解决方案是完美的,如果你想从一个数组中得到类似的,你可以这样做:
$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'];
您可以删除 2G 和网络之间的空间,也可以使用将 json 解码为数组json_decode($description, true)
您可以调用函数来删除 JSON 中的空格
见下文 http://www.pukkared.com/2010/02/removing-extra-white-space-before-returning-json-data/