1

我是 json 新手。我想将 JSON 文件中的数据读入 php 文件。

我的json文件数据是这样的

{"multicast_id":8925377088262649527,"success":0,"failure":1,"canonical_ids":0,"results":[{"error":"NotRegistered"}]}

我只想检查successfailure值。我用了

json_decode($jason_string,true);

但它不适用于我的服务器。我不知道原因。

所以请告诉我解决这个问题的最简单方法,并请详细解释。

4

2 回答 2

1

您的代码应该可以工作。

<?php 
$somestring = <<<HEREDOC
{"multicast_id":8925377088262649527,"success":0,"failure":1,"canonical_ids":0,"results"$
HEREDOC;

var_dump(json_decode($somestring, true));

按预期输出:

chris@chris-UX31E:~$ php test.php 
array(5) {
  ["multicast_id"]=>
  int(8925377088262649527)
  ["success"]=>
  int(0)
  ["failure"]=>
  int(1)
  ["canonical_ids"]=>
  int(0)
  ["results"]=>
  array(1) {
    [0]=>
    array(1) {
      ["error"]=>
      string(13) "NotRegistered"
    }
  }
}

请启用 PHP 日志记录以进行调试!看看:http ://davidwinter.me/articles/2009/07/14/enable-php-error-logging/

如果它是本地开发服务器,我更喜欢显示错误并启用所有错误消息 http://www.dzone.com/snippets/let-php-show-all-errors

于 2012-11-16T10:40:19.213 回答
1

做这个 :

转到 -> 开始 -> 运行 -> cmd.exe

跑:

c:\path\to\your\php.exe --version

检查您是否有 php 5.2 或更高版本。(json 从 5.2 开始默认与 php 捆绑在一起)如果你不...你需要安装(http://www.php.net/manual/en/install.pecl.windows.php)或将 php 升级到更新版本。

你也可以尝试在 shell 中执行此操作

c:\path\to\your\php.exe --ini

编辑前面显示的 php.ini

Loaded Configuration File:

找到线

;扩展=php_json.dll

去除 ';' 并保存,如果您没有该行,您可以添加它。重新启动您的网络服务器并重试

于 2012-11-16T10:57:04.117 回答