使用PHP的json_decde遇到的坑

(1)今天在一个页面上添加一个ajax查询订单号是否存在的功能,操蛋的是在原页面上引用了一个js文件,并且该文件里面封装了一个原生的ajax方法,影响就是我是用jquery的ajax方法会被该方法拦截,然后返回失败结果,由于本人并非专业前端,所以并没有去刨根问底,只好按照框架封装的方法去发ajax请求了。

(2)使用该框架封装的方法后确实是可以用了,但是操蛋的是又一个操蛋的结果出来了,该ajax发送的数据都是使用双引号包裹的json字符串。

双引号包裹的字符串有什么问题吗?当然。php接受到数据之后,采用json_decode()无法解析。返回的值始终为null
查了一下原因,php不仅对json格式很严格,甚至对包裹json字符串的引号很严格。。。
正儿八经的格式应该是'{ "bar": "baz" }'
但是如果你使用"{ 'bar': 'baz' }"就不行了,
使用"{ \"bar\": \"baz\" }"也不行,
虽然这在js中是可行的。
综上,正确做法:

$str = "{\"name\": \"Bob\"}";//被双引号包裹的字符串
$str = stripslashes($str);//反引用一个引用字符串。
$obj = json_decode($str);//解析json字符串
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值