资源驿站 首页 文章资讯 技术教程

解决php使用json_decode把json数据转换成Object对象或Array数组返回NULL的原因

2019-6-15 20:04

遇到问题:php在使用json_decode函数解码json字符串时,解码不成功返回NULL的问题原因分析和解决方法。在php中,json字符串解码一般使用json_decode()函数,如下:json_decode($json,$bool);第一个$json参数传字符 ...

遇到问题:

php在使用json_decode函数解码json字符串时,解码不成功返回NULL的问题原因分析和解决方法。

在php中,json字符串解码一般使用json_decode()函数,如下:

json_decode($json,$bool);

第一个$json参数传字符串,

第二个参数$bool若为true,返回array数组;若为false(或者不写),返回object对象。

如果返回NULL,说明报错,可使用 echo json_last_error() 输出错误代码,得到的整数值对应下表:

json_last_error()比较常见的是整数4,是json字符串在json_decode之前已不完整,所以语法错误。 

1、错误写法一:多了个双引号

header('Content-type: text/json; charset=utf-8');
echo '{"rows":1","data":[{"uid":1,"name":"tom","age":18,"sex":"男"}]}';

2、错误写法二:属性和值使用的是单引号


header("Content-type: text/json; charset=utf-8");
echo "{'rows':1,'data':[{'uid':1,'name':'tom','age':18,'sex':'男'}]}";


上述代码属性和值使用的是单引号,这个在javascript里是可以正常解析成JSON的,但在PHP中就不行了,PHP里面要写成'{ "key": "value" }',属性和值必须要用双引号。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

粉丝1 阅读468 回复0
国内最专业的资源分享平台
全国免费热线电话

400-123-4567

周一至周日9:00-23:00

反馈建议

api999@qq.com 在线QQ咨询

扫描二维码关注我们

Copyright © 2018-2021 资源驿站 All Rights Reserved.

版权所有:美奇软件开发工作室  备案/许可证号:蜀ICP备19029089号-2

Powered by Discuz! |网站地图