php jsondecode null,php7 json_decode null

因为你的字符串不是标准的JSON字符串, 标准的JSON字符串每个string类型都要用"引起了

测试代码

$jsonStr1 = '{status: {RetCode:0, msg: "success"}, data: {}}';

var_dump(json_decode($jsonStr1, true));

var_dump(json_last_error());

echo "--------分割线--------".PHP_EOL;

$jsonStr2 = '{"status": {"RetCode":0, "msg": "success"}, "data": {}}';

var_dump(json_decode($jsonStr2, true));

结果

NULL

int(4)

--------分割线--------

array(2) {

["status"]=>

array(2) {

["RetCode"]=>

int(0)

["msg"]=>

string(7) "success"

}

["data"]=>

array(0) {

}

}

============== 更新 ==============

经过调试,发现是 BOM 引起的,下面是解决方案

$dataString = $merchant_arr['data'];

$A = substr($dataString, 0, 1);

$B = substr($dataString, 1, 1);

$C = substr($dataString, 2, 1);

if ((ord($A) == 239) && (ord($B) == 187) && (ord($C) == 191)) {

$dataString = substr($dataString, 3);

}

$dataArray = json_decode($dataString, true);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值