【问题标题】:Error when get value from json_decode() in php?从 php 中的 json_decode() 获取值时出错?
【发布时间】:2012-07-14 04:10:20
【问题描述】:

我有一个示例代码:

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

结果错误,如何解决!

【问题讨论】:

    标签: php json object space


    【解决方案1】:

    试试这个:

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

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

    【讨论】:

    • 结果:试图获取非对象的属性
    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        【解决方案4】:

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

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

        【讨论】:

        • 这与问题无关。 PHP JSON 解析器(或任何有效的 JSON 解析器)不关心属性名称或字符串值之外的空格。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2022-01-14
        • 2014-07-13
        • 2016-03-15
        • 1970-01-01
        • 2016-12-23
        • 1970-01-01
        • 2015-01-20
        相关资源
        最近更新 更多