json解析的时候出现null的问题

今天在写微信登录回调的时候 用state带上多个参数的json的时候,在回调函数上解析json居然出现NULL

首先检查了一下传过来的参数是这样的

string"{varify_code:XXX,id:XXXX}"

说明有参数,但是格式不对,网上搜了一堆 这里总结一下

  1. 有人说在json_decode的时候加上true 但是并没有用,因为加上一个true也只是吧解析为对象改为解析为数组而已

  2. 使用stripslashes函数和html_entity_decode函数:
    html_entity_decode() 函数的作用是把 HTML 实体转换为字符。
    stripslashes() 函数的作用是删除反斜杠。

  $data = stripslashes(html_entity_decode($info)); //$info是传递过来的json字符串
  $data = json_decode($data,TRUE);

但是并不适合这个情况

  1. json_last_error函数看看错误吗是什么 //返回了4

这个问题主要是因为在 json 字符串中反斜杠被转义,只需要用 htmlspecialchars_decode() 函数处理一下 $state即可:

$content = htmlspecialchars_decode($state);

但是并不适合这个情况

  1. 分析了一下 应该是在传上回调时候就应该用urlencode转义一下 防止破坏,所以在保存 json 数据时使用 urlencode() 函数:
$content = urlencode(json_encode($content));
//解析时使用 urldecode() 函数:
$content = json_decode(urldecode($content),true);

完美解决

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值