日期:2014-05-16  浏览次数:20527 次

接收到的json解析不了,必须用php解析

function sendPost($url,$postData){
 $postdata = http_build_query($postData);
 $options = array(
 'http' => array(
 'method' => 'POST',
 'header' => 'Content-type:application/x-www-form-urlencoded',
 'content' => $postdata,
 'timeout' => 15 * 60 // 超时时间(单位:s)
)
 );
 $context = stream_context_create($options);
 $result = file_get_contents($url, false, $context);

 return $result;
 }


$url = "http://chepiao.sinaapp.com/api.php?act=remain";
$data = array(
 "date"=>"20131220",
 "startStation"=>"北京",
 "arriveStation"=>"天津"
);
$result = sendPost($url, $data);
 $obj = json_decode($result);
$result就是返回来的数据,就是解析不了,用json_decode($result);解析成的是NULL

------解决方案--------------------
本帖最后由 xuzuning 于 2013-12-17 19:19:36 编辑
连csdn都不能接受这种字符集的错乱
utf-8环境看到

------解决方案--------------------
真奇葩
echo json_last_error();
结果是4,说明格式不正确
于是把返回的东西扔http://jsonlint.com/检测,报错,发现是换行的问题
print_r(json_decode(str_replace("\n"," ",$result)));
结果就好了。