无法解码JSON

时间:2015-10-19 04:28:31

标签: php json

我猜里面可能有一个隐藏的角色。

JSON数据:

我正在使用this URL

进行以下回复
  

{"请求" {"命令":"系列"" series_id":" ng.n3010us3.a& #34;},"数据":{"错误":"没有api_key。有关密钥注册,文档和示例,请参阅http://www.eia.gov/developer/"}}

我做了什么:

  1. 使用file_get_contents从网址

  2. 获取数据
  3. 使用json_decode($ rawjson,TRUE);使它成为一个数组。 - > ERROR

  4. json_last_error_message显示'语法错误'

    我试图找出导致问题的角色。

1 个答案:

答案 0 :(得分:2)

如前所述,回复包含BOM序列 请参阅here有关字节顺序标记的更多信息。

你可以像这样删除它:

$j = file_get_contents("http://api.eia.gov/series/?api_key=&series_id=NG.N3010US3.A");

$o = json_decode(remove_bom($j));

var_dump($o);


function remove_bom($string)
{
    $bom = pack('H*','EFBBBF');
    $text = preg_replace("/^$bom/", '', $text);
    return $sring;
}