有没有json_decode的替代品?

时间:2014-05-02 10:55:32

标签: php json

我有一个JSON字符串,它传递http://www.freeformatter.com/json-validator.html中的检查,返回:

The JSON input is valid in JavaScript.
The JSON input is valid according to RFC 4627 (JSON specfication).

然而,当我跑步时:

$string = json_decode($string);
print_r($string);

它打印字符串的方式与json_decode($string)之前完全相同。

我还能尝试别的吗?或者也许是我不知道或没想过的东西?

字符串在这里:http://pubapi.cryptsy.com/api.php?method=marketdatav2


要获取字符串,我正在使用:

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://pubapi.cryptsy.com/api.php?method=marketdatav2");
$ret = curl_exec($ch);

然后

$ret = substr($ret, 0,-1);

因为它最后返回1,虽然我最初尝试过但没有删除最后一个字符并得到相同的结果。

2 个答案:

答案 0 :(得分:5)

$s = file_get_contents("http://pubapi.cryptsy.com/api.php?method=marketdatav2");
$s = json_decode($s);

print_r($s);

就像一个魅力

这是我的卷曲版

$url = "http://pubapi.cryptsy.com/api.php?method=marketdatav2";
$ch=curl_init();
curl_setopt($ch,CURLOPT_HEADER,0);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_FOLLOWLOCATION,1);
$data=curl_exec($ch);
curl_close($ch);

$s = json_decode($data);
print_r($s);

答案 1 :(得分:1)

看起来该页面正在作为windows-1252提供,但我相信JSON必须是UTF-8。尝试先将其转换为UTF-8,然后通过json_decode()运行它。