2019年09月18日(星期三)  农历:己亥年八月二十

作者:三年。分类: JAVA 标签: java基础学习 JSON解析 BOM头

    前言:在我们对Json字符串进行处理时,往往会碰到这个问题org.json.JSONException: Value  of type java.lang.String cannot be converted to JSONObject,解析服务器返回的Json串时,JSONObject对象抛出了这个异常。其实这是返回的Json字符串含有BOM头导致的

什么是JSON? 

   JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于ECMAScript的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C、C++、C#、JavaJavaScript、Perl、Python等)。这些特性使JSON成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成(一般用于提升网络传输速率)。

什么是bom头?

    在utf-8编码文件中BOM在文件头部,占用三个字节,用来标示该文件属于utf-8编码,现在已经有很多软件识别bom头,但是还有些不能识别bom头,比如PHP就不能识别bom头,这也是用记事本编辑utf-8编码后执行就会出错的原因了。

去掉bom头的办法:

     1、editplus去BOM头的方法
        编辑器调整为UTF8编码格式后,保存的文件前面会多出一串隐藏的字符(也即是BOM),用于编辑器识别这个文件是否是以UTF8编码。
        运行Editplus,点击工具,选择首选项,选中文件,UTF-8标识选择 总是删除签名,
        然后对PHP文件编辑和保存后的PHP文件就是不带BOM的了。

    2、ultraedit去除bom头办法
        打开文件后,另存为选项的编码格式里选择(utf-8 无bom头),确定就ok了


使用JSON也差不多一年了,前前后后也遇到过几次莫名其妙的解析出错!原因就是因为在utf-8中生成的JSON文件带有BOM头

例如下面这张图片的这段JSON

bom_json.png

    本人菜鸟一枚,望各位大虾轻噴~谢谢各位!!!

温馨提示如有转载或引用以上内容之必要,敬请将本文链接作为出处标注,谢谢合作!

已有 0/3764 人参与

发表评论:



手Q扫描加入Java初学者群