$str2='{"code":200,"datas":{"id":1,"coupon_id":"123","validity":"2018-08-14","is_use":0,"source":"2","create_time":"2018-08-14 15:06:40"}}';
var_dump(json_decode($str2));
打印的结果如下:
网上各种搜索没有解决方案,最终想到编码格式上,查看了TP框架源码,重点就在这里,返回的结果是带bom头的utf8格式的数据,因此只要去除bom头就好了,添加一个方法:
/**
* 去掉文件中的bom头
* @param object $fileName Description
* @return object Description
*/
function clearBom($str){
$bom = chr(239).chr(187).chr(191);
return str_replace($bom ,'',$str);
}
然后再执行,结果如下,问题解决:
$str2='{"code":200,"datas":{"id":1,"coupon_id":"123","validity":"2018-08-14","is_use":0,"source":"2","create_time":"2018-08-14 15:06:40"}}';
var_dump(json_decode(clearBom($str2)));
结果如下:
object(stdClass)#1 (2) {
["code"]=>
int(200)
["datas"]=>
object(stdClass)#2 (6) {
["id"]=>
int(1)
["coupon_id"]=>
string(3) "123"
["validity"]=>
string(10) "2018-08-14"
["is_use"]=>
int(0)
["source"]=>
string(1) "2"
["create_time"]=>
string(19) "2018-08-14 15:06:40"
}
}
[Finished in 0.1s]