Mysql中的数据用 json_decode 解析返回null的一则处理方法
2011-12-14 11:38
836 查看
刚刚遇到一个php json_decode解析的问题,记录一下解决方法:
一个调查问卷系统,从数据库中取出多条记录,其中以下一条数据记录,在用php json_decode解析时,结果返回NUll
编码已经是UTF-8,其他数据解析正常,所以,排除是中文编码问题。
经过与下面的可以正常解析的数据进行对比
发现不能正常解析的数据,包含了
换行,怀疑是数据库中的换行造成的。
\r 表示:回车符(ACSII:13 或0x0d),就是我们常说的硬回车。
\n 表示:换行(ACSII:10 或0x0a),就是我们常说的软回车。
过滤
然后用json_decode解析,返回正确的结果。
补充:www.json.org 提供的需要过滤的特殊字符
一个调查问卷系统,从数据库中取出多条记录,其中以下一条数据记录,在用php json_decode解析时,结果返回NUll
{"question_1359":"韩亮","question_1360":"综合管理部","question_1361":"资质","question_1362":"12月14日","question_1363":"3500","question_1379":"3588","question_1380":"3595","question_1370":"3535,3537,3539,3542","question_1371":"3544","question_1372":"3549","question_1373":"3553","question_1374":"3562","question_1381":"3598,other:对公司整体情况(发展历程、技术、产品性能)的了解","question_1375":"3564,3571","question_1382":"1、没有机会认识其他部门的同事; 2、有相关事宜不清楚咨询具体哪位同事; 3、新员工记不住公司制度,查询不方便。","question_1376":"3602,3604,3606,3608,3610,3612,3616,3620","question_1378":"希望因需制定培训内容; 吸取外界知识很重要。"}
编码已经是UTF-8,其他数据解析正常,所以,排除是中文编码问题。
经过与下面的可以正常解析的数据进行对比
{"question_1359":"徐燕","question_1360":"研发","question_1361":"产品文档","question_1362":"20111214","question_1363":"3503","question_1379":"3588,3590,3592,other:我个人认为,花时间去做培训,更多的是能帮助员工发散自己的思维更好的工作。","question_1380":"3594","question_1370":"3536,3537,3538,3542","question_1371":"3546","question_1372":"3549","question_1373":"other:适时安排,毕竟每个人的工作时间并不是统一性的。","question_1374":"3561","question_1381":"3598,3599,3600","question_1375":"3566,3567,3568,3571","question_1382":"专业性不强,对产品的了解不够,对公司体系的不熟悉","question_1376":"3602,3603,3608,3609,3617,3618,3619,3620","question_1378":"针对职业的专门性的培训,我作为文档工程师,更多的希望关注较为针对性的业内培训"}
发现不能正常解析的数据,包含了
\r\n
","question_1382":"1、没有机会认识其他部门的同事; 2、有相关事宜不清楚咨询具体哪位同事; 3、新员工记不住公司制度,查询不方便。"
换行,怀疑是数据库中的换行造成的。
\r 表示:回车符(ACSII:13 或0x0d),就是我们常说的硬回车。
\n 表示:换行(ACSII:10 或0x0a),就是我们常说的软回车。
过滤
$str = str_replace(array("\r","\n"),"",$str);
然后用json_decode解析,返回正确的结果。
补充:www.json.org 提供的需要过滤的特殊字符
\" \\ \/ \b \f \n \r \t \u
相关文章推荐
- json_encode不对中文进行转码、json_decode解析json字符串返回NULL的处理方法
- 【js与jquery】jquery对返回json格式数据的处理和解析
- PHP解码Json(json_decode)字符串返回NULL的原因及解决方法(转载)
- 【jmeter】JMeter中返回Json数据的处理方法
- Java后台返回和处理JSon数据的方法
- PHP json_decode返回null解析失败原因
- jQuery处理json数据返回数组和输出的方法
- ajax处理返回的json格式数据方法
- Jquery ajax方法解析返回的json数据
- Jquery ajax方法解析返回的json数据
- jQuery解析与处理服务器端返回xml格式数据的方法详解
- jQuery处理json数据返回数组和输出的方法
- PHP json_decode 函数解析 json 结果为 NULL 的解决方法
- spring mvc 4.x 版本在返回给ajax调用的json数据时候,出现中文显示???的处理方法
- 用Jquery处理PHP返回的JSON格式数据的三种方法
- Android解析相同接口返回不同格式json数据的方法
- 【转】Jquery ajax方法解析返回的json数据
- sbjson解析出的json字符串包含null时的处理方法
- php使用json_decode解析json返回NULL
- PHP json_decode返回null解析失败原因