Exception in thread "main" net.sf.json.JSONException: A JSONArray text must start with '[' at charac

前端之家收集整理的这篇文章主要介绍了Exception in thread "main" net.sf.json.JSONException: A JSONArray text must start with '[' at charac前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

原文链接http://www.jb51.cc/article/p-kdfmewvc-zw.html


使用高级文本编辑器转换为 无 BOM编码格式即可。

有BOM和无BOM效果图:链接http://www.jb51.cc/article/p-mswqefxb-zk.html


json解析报错A JSONArray text must start with '['

这里使用的是Android系统的,数据格式是正确的


[java] view plain copy
  1. JSONArrayjoa=newJSONArray(data);

解析代码就这一句 (数据格式是对,是对的,对的)问了好多人都说格式是不对,要是这问题怎么可能老去问了是吧

百度了好久也是什么格式问题啊 什么解析包导错了啦等等啊。。

昨天弄了一天 没有解决。谷歌了这样一条线索 可能数据编码影响,看返回的结果貌似是utf-8的,我又去看我下载数据的地方

copy

    publicstaticStringdealResponseResult(InputStreaminputStream){
  1. StringresultData=null;//存储处理结果
  2. ByteArrayOutputStreambyteArrayOutputStream=newByteArrayOutputStream();
  3. byte[]data=newbyte[1024];
  4. intlen=0;
  5. try{
  6. while((len=inputStream.read(data))!=-1){
  7. byteArrayOutputStream.write(data,0,len);
  8. }
  9. }catch(IOExceptione){
  10. e.printStackTrace();
  11. }
  12. resultData=newString(byteArrayOutputStream.toByteArray());
  13. //System.out.println("结果"+resultData);
  14. returnresultData;
  15. }

这里刻意没有转码,可还是不行。结果一位大神跟我说

可能传回来的数据带dom头,

把第一个字符取出来转成int应该是65279 应该是bomutf8的问题
也是我打印一个字符是空,并不是65279,不过截取第一个数据以后就可以了,反正就是编码问题
第一应该就是标识 去掉就可以解析了。

猜你在找的Json相关文章