千家信息网

json格式错误是什么意思

发表于:2024-09-22 作者:千家信息网编辑
千家信息网最后更新 2024年09月22日,json格式错误是什么意思,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。格式错误由于json只接受utf-8编码的字符,所以json_e
千家信息网最后更新 2024年09月22日json格式错误是什么意思

json格式错误是什么意思,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

格式错误

由于json只接受utf-8编码的字符,所以json_encode()的参数必须是utf-8编码,否则会得到空字符或者null。当中文使用GB2312编码,或者外文使用ISO-8859-1编码的时候,这一点要特别注意。

$bad_json = "{ 'bar': 'baz' }";$bad_json = '{ bar: "baz" }';$bad_json = '{ "bar": "baz", }';

对这三个字符串执行json_decode()都将返回null,并且报错。

第一个的错误是,json的分隔符(delimiter)只允许使用双引号,不能使用单引号。第二个的错误是,json名值对的"名"(冒号左边的部分),任何情况下都必须使用双引号。第三个的错误是,最后一个值之后不能添加逗号(trailing comma)。

另外,json只能用来表示对象(object)和数组(array),如果对一个字符串或数值使用json_decode(),将会返回null。

格式正确,但却报错

第一种类型,字符编码问题

由于json只接受utf-8编码的字符,所以json_encode()的参数必须是utf-8编码,否则会得到空字符或者null。当中文使用GB2312编码,或者外文使用ISO-8859-1编码的时候,这一点要特别注意。

第二种类型BOM问题

BOM报头又叫UTF-8签名,其实UTF-8 的BOM对UFT-8没有作用,是为了支援UTF-16,UTF-32才加上的BOM,BOM签名的意思就是告诉编辑器当前文件采用何种编码,方便编辑器 识别,但是BOM虽然在编辑器中不显示,但是会产生输出,就像多了一个空行,一般的php代码如果用记事本等软件编辑保存过之后,在保存一个以UTF-8编码的文件时,会在文件开始的地方插入三个不可见的字符(0xEF 0xBB 0xBF,即BOM)。它是一串隐藏的字符,用于让记事本等编辑器识别这个文件是否以UTF-8编码。(还不清楚为什么会在返回数据时候也自动加上了BOM报头)。

/** * 去除bom报头 */public static String formatString(String s) {if (s != null) {  s = s.replaceAll("\ufeff", "");} return s;}

看完上述内容,你们掌握json格式错误是什么意思的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注行业资讯频道,感谢各位的阅读!

编码 字符 错误 格式 文件 编辑器 问题 UTF-8 utf-8 意思 三个 引号 报头 时候 内容 参数 字符串 方法 更多 空字符 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 辽宁省大连公安局网络安全 名模网络技术有限公司 如何运用多媒体网络技术呢 丽水市网络安全宣传 曙光服务器怎么找回密码 我的世界空城泪服务器 数据库原理与技术总结感想 吐鲁番有dns服务器吗 有没有软件开发的书籍 lims实验室管理系统服务器 嘉定区特定软件开发服务密度 mysql数据库解决乱码 怎么复制数据库的字段 广州网商互联网络科技有限公司 人工智能软件开发靠谱吗 广东人工智能软件开发服务费 上海现代软件开发联系方式 淮安管理类软件开发 网络安全靠人民作文 服务器配置都有哪些 义乌网络安全司 oralce数据库打补丁 暗黑2自己搭建服务器 魔镜物语哪个服务器人数多 服务器有没有自动运行程序 考研考网络安全怎么样 坦克世界用什么软件开发的 计算机网络技术中链路是什么 大学生网络安全手抄报模板 网络技术服务费用是多少
0