前言:在我们对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#、Java、JavaScript、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
本人菜鸟一枚,望各位大虾轻噴~谢谢各位!!!
原文链接:http://www.echohoo.com/?post=515
本文出自 “11105560” 博客,请务必保留此出处http://11115560.blog.51cto.com/11105560/1795299
原文地址:http://11115560.blog.51cto.com/11105560/1795299