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,不过截取一个数据以后就可以了,反正就是编码问题
第一应该就是标识 去掉就可以解析了。

相关文章

AJAX是一种基于JavaScript和XML的技术,能够使网页实现异步交...
在网页开发中,我们常常需要通过Ajax从后端获取数据并在页面...
在前端开发中,经常需要循环JSON对象数组进行数据操作。使用...
AJAX(Asynchronous JavaScript and XML)是一种用于创建 We...
AJAX技术被广泛应用于现代Web开发,它可以在无需重新加载页面...
Ajax是一种通过JavaScript和HTTP请求交互的技术,可以实现无...