java.lang.IllegalStateException: Expected BEGIN_OBJECT but was was STRING at line 1 column 1
来源:互联网 发布:pinyinime 源码 编辑:程序博客网 时间:2024/05/19 05:33
解析json字符串出现这个错误:
com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was STRING at line 1 column 1
这是报的错误 这是我写的bean类 public class NewsJsonToBean { public String errNum; public GetNews retDa...
分析原因:
List<Person> ps = gson.fromJson(str, new TypeToken<List<Person>>(){}.getType());
GSON提供了 TypeToken 这个类来帮助我们捕获(capture)像List<MyZhuiHaoDetailModel>这样的泛型信息。
不是我们这句代码错误了,是因为实际开发中,我们获取数据都是通过网络接口从服务器获取数据,这些数据的格式都是后台写的,这就存在了人为可能造成的数据错误。
图片:
注意这种后台回传的数据格式: 最外层还是“”--字符串,里面是[] --数组,但是数组中,又是“”--字符串,字符串中又是[],然后才是{},我们需要的字典。
解决方案:
参考资料:http://www.open-open.com/lib/view/open1472632967912.html
//换这个方式 //Json的解析类对象 //将JSON的String 转成一个JsonArray对象 JsonParser jsonParser = new JsonParser(); JsonArray jsonArray = jsonParser.parse(str).getAsJsonArray(); Gson gson = new Gson(); //加强for循环遍历JsonArray for (JsonElement user : jsonArray) { //使用GSON,直接转成Bean对象 Course userBean = gson.fromJson(user, Course.class); coursesList.add(userBean); }//这种方式不用 //coursesList = gson.fromJson(str,new TypeToken<List<Course>>(){}.getType());
0 1
- java.lang.IllegalStateException: Expected BEGIN_OBJECT but was was STRING at line 1 column 1
- java.lang.IllegalStateException: Expected BEGIN_OBJECT but was STRING at line 1 column 39 path $
- java.lang.IllegalStateException: Expected BEGIN_ARRAY but was BEGIN_OBJECT at line 1 column 81
- java.lang.IllegalStateException: Expected BEGIN_OBJECT but was BEGIN_ARRAY at line 1 column 2 path $
- java.lang.IllegalStateException: Expected BEGIN_ARRAY but was BEGIN_OBJECT at line 1 column 2 path $
- java.lang.IllegalStateException: Expected BEGIN_ARRAY but was BEGIN_OBJECT at line 1 column 34 path
- android json解析java.lang.IllegalStateException: Expected BEGIN_ARRAY but was BEGIN_OBJECT at line 1报错
- android 错误java.lang.IllegalStateException: Expected BEGIN_ARRAY but was BEGIN_OBJECT at line 1
- Expected BEGIN_ARRAY but was BEGIN_OBJECT at line 1 column 498
- android报错 Expected BEGIN_OBJECT but was STRING at line 1 column 39 path $
- Expected BEGIN_OBJECT but was STRING at line 4 column 1 path $ 错误积累
- retrofit加载失败java.lang.IllegalStateException: Expected BEGIN_ARRAY but was BEGIN_OBJECT at line 1...
- IllegalStateException: Expected BEGIN_ARRAY but was STRING at line 1 column 616
- Expected a string but was BEGIN_OBJECT at line 1 column 2 path $(不让retrofit2自动替我解析json)
- Gson 解析时候报错: Expected BEGIN_OBJECT but was BEGIN_ARRAY at line 1 column 2 path $
- Expected BEGIN_OBJECT but was BEGIN_ARRARY at line 1 column 2 path$异常解决方法
- Expected BEGIN_OBJECT but was BEGIN_ARRAY at line 1 column 2 path 解决办法
- Gson 解析时候报错: Expected BEGIN_OBJECT but was BEGIN_ARRAY at line 1 column 2 path $
- java文件流处理jd-gui反编译后文件中每行的注释符
- 查找(1)---顺序查找
- java中gc()与finalize()
- 自定义lucene的同义词分词器
- android L平台增加来电翻转静音菜单、功能
- java.lang.IllegalStateException: Expected BEGIN_OBJECT but was was STRING at line 1 column 1
- 292. Nim Game
- X86汇编 通用寄存器总结
- 解压版MySQL安装
- 17.定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。
- Python将txt文件输入到MySQL数据库中
- pyinstaller打包问题,关于skleran
- 面向对象思想
- 背包九讲 c++实现完整代码