我有一个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,虽然我最初尝试过但没有删除最后一个字符并得到相同的结果。
答案 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()
运行它。