首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > PHP >

json数据解析返回为空,哪里出有关问题了

2012-11-03 
json数据解析返回为空,哪里出问题了?事情是这样的:A网站提供一个连接接口,我验证登录信息通过后,返回一个j

json数据解析返回为空,哪里出问题了?
事情是这样的:

A网站提供一个连接接口,我验证登录信息通过后,返回一个json数据;但是我用$response = json_decode($output);却得不到数据、返回是空; 请教坛子里高手,怎么才能正确解析json数据成数组呢 、
数据部分截取:

PHP code
{"total":359,"data":[{"Id":113023,"ProductId":2905,"ProductCode":"SZX01","ProductName":"计算机图书系列","ProcessDays":1,"ProcessResume":"","WorkDayPrice":79.0000,"WeekdayPrice":89.0000,"NormalPrice":0.0000,"Catalog":"0","Type":0,"RDCatalog":0,"BizCatalog":0,"StartDate":new Date(1350691200000),"Deleted":0},{"Id":113024,"TourId":2905,"ProductCode":"SZX01","ProductName":"儿童图书教系列","ProcessDays":1,"ProcessResume":"","WorkDayPrice":79.0000,"WeekdayPrice":89.0000,"NormalPrice":0.0000,"Catalog":"0","Type":0,"RDCatalog":0,"BizCatalog":0,"StartDate":new Date(1350777600000),"Deleted":0}]}

我的代码是这样的:
PHP code
<?phpheader ("Content-Type:text/html; charset=UTF-8");  $url = 'http://58.61.153.173/dataport/GetAllTourInfo.ashx';$host=array('user: admin','password: admin_123');$ch = curl_init();curl_setopt($ch, CURLOPT_URL, $url);curl_setopt($ch, CURLOPT_HEADER, 0);curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);curl_setopt($ch,CURLOPT_HTTPHEADER,$host);$output = curl_exec($ch);print $output; //数据能打印出来,如上面那数据$response = json_decode($output);//加上后边这两句,也不报错、但是也没有数据打印出来print $response;//加上后边这两句,也不报错、但是也没有数据打印出来?>





[解决办法]
因为
"StartDate":new Date(1350691200000),
造成的,把它从字符串中都拿掉就可以了.你试试,我刚才调试过试验了.
[解决办法]
PHP code
$s='{"total":359,"data":[{"Id":113023,"ProductId":2905,"ProductCode":"SZX01","ProductName":"计算机图书系列","ProcessDays":1,"ProcessResume":"","WorkDayPrice":79.0000,"WeekdayPrice":89.0000,"NormalPrice":0.0000,"Catalog":"0","Type":0,"RDCatalog":0,"BizCatalog":0,"StartDate":new Date(1350691200000),"Deleted":0},{"Id":113024,"TourId":2905,"ProductCode":"SZX01","ProductName":"儿童图书教系列","ProcessDays":1,"ProcessResume":"","WorkDayPrice":79.0000,"WeekdayPrice":89.0000,"NormalPrice":0.0000,"Catalog":"0","Type":0,"RDCatalog":0,"BizCatalog":0,"StartDate":new Date(1350777600000),"Deleted":0}]}';$s=preg_replace('/new Date[^,]+/','"$0"',$s);print_r(json_decode($s));/*stdClass Object(    [total] => 359    [data] => Array        (            [0] => stdClass Object                (                    [Id] => 113023                    [ProductId] => 2905                    [ProductCode] => SZX01                    [ProductName] => 计算机图书系列                    [ProcessDays] => 1                    [ProcessResume] =>                     [WorkDayPrice] => 79                    [WeekdayPrice] => 89                    [NormalPrice] => 0                    [Catalog] => 0                    [Type] => 0                    [RDCatalog] => 0                    [BizCatalog] => 0                    [StartDate] => new Date(1350691200000)                    [Deleted] => 0                )            [1] => stdClass Object                (                    [Id] => 113024                    [TourId] => 2905                    [ProductCode] => SZX01                    [ProductName] => 儿童图书教系列                    [ProcessDays] => 1                    [ProcessResume] =>                     [WorkDayPrice] => 79                    [WeekdayPrice] => 89                    [NormalPrice] => 0                    [Catalog] => 0                    [Type] => 0                    [RDCatalog] => 0                    [BizCatalog] => 0                    [StartDate] => new Date(1350777600000)                    [Deleted] => 0                )        ))*/ 


[解决办法]
我也测试理下,是new Date(1350691200000)这里有问题。
加上双引号就可以了。

$str = '{"total":359,"data":[{"Id":113023,"ProductId":2905,"ProductCode":"SZX01","ProductName":"计算机图书系列","ProcessDays":1,"ProcessResume":"","WorkDayPrice":79.0000,"WeekdayPrice":89.0000,"NormalPrice":0.0000,"Catalog":"0","Type":0,"RDCatalog":0,"BizCatalog":0,"StartDate":"new Date(1350691200000)","Deleted":0},{"Id":113024,"TourId":2905,"ProductCode":"SZX01","ProductName":"儿童图书教系列","ProcessDays":1,"ProcessResume":"","WorkDayPrice":79.0000,"WeekdayPrice":89.0000,"NormalPrice":0.0000,"Catalog":"0","Type":0,"RDCatalog":0,"BizCatalog":0,"StartDate":"new Date(1350777600000)","Deleted":0}]}';

热点排行