3

我有一个示例代码:

$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'];

结果是错误,如何解决它!

4

4 回答 4

6

尝试这个:

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

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

于 2012-07-14T04:12:29.310 回答
3

布拉德解决方案是完美的,如果你想从一个数组中得到类似的,你可以这样做:

$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'];
于 2012-07-14T04:21:22.527 回答
1

您可以删除 2G 和网络之间的空间,也可以使用将 json 解码为数组json_decode($description, true)

于 2012-07-14T04:13:44.830 回答
0

您可以调用函数来删除 JSON 中的空格

见下文 http://www.pukkared.com/2010/02/removing-extra-white-space-before-returning-json-data/

于 2012-07-14T04:14:32.347 回答