Gson 问题

helloha2013 2016-05-30 11:40:04
假设与如下json,使用Gson读取

{
"code":100,
"griddata":[
{"img":"http:\/\/img.netbian.com\/file\/20140405\/fa129372a26730ea8030dbbb392d6ac7.jpg"},
{"img":"http:\/\/img.netbian.com\/file\/2016\/0529\/849bfad06e44e67364752eee6a382448.jpg"},
{"img":"http:\/\/img.netbian.com\/file\/20140405\/fa129372a26730ea8030dbbb392d6ac7.jpg"}
]
}

对应的bean是

public class TTTT {

/**
* code : 100
* griddata : [{"img":"http://img2.kanrenti.org/photoL/7254/01.jpg"},{"img":"http://img2.kanrenti.org/photoL/7254/02.jpg"},{"img":"http://img2.kanrenti.org/photoL/7254/03.jpg"}]
*/

private int code;
/**
* img : http://img2.kanrenti.org/photoL/7254/01.jpg
*/

private List<GriddataEntity> griddata;

public int getCode() {
return code;
}

public void setCode(int code) {
this.code = code;
}

public List<GriddataEntity> getGriddata() {
return griddata;
}

public void setGriddata(List<GriddataEntity> griddata) {
this.griddata = griddata;
}

public static class GriddataEntity {
private String img;

public String getImg() {
return img;
}

public void setImg(String img) {
this.img = img;
}
}
}


然后使用Gson的fromJson方法读取,如
Type lt = new TypeToken<List<TTTT>>() {}.getType();
List<TTTT> tmp1 = g.fromJson(response, lt); //此句报错
或者
TTTT tmp1=g.fromJson(response,TTTT.class); //此句报错

都报:Caused by: java.lang.IllegalStateException: Expected BEGIN_ARRAY but was BEGIN_OBJECT at line 1 column 2
请问,Gson如何读取这样啦的bean?
...全文
249 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
helloha2013 2016-06-03
  • 打赏
  • 举报
回复
谢谢大家,给分了!
jklwan 2016-05-31
  • 打赏
  • 举报
回复
用TTTT tmp1=g.fromJson(response,TTTT.class);这个解析。 Expected BEGIN_ARRAY but was BEGIN_OBJECT,就是说需要的是array但是数据是bean,应该是数据问题 打印下数据看是否正确。
秃头地中海 2016-05-31
  • 打赏
  • 举报
回复
应该是你解析的数据有问题 代码不全 打印response看看是不是就是数组
柒加伊 2016-05-31
  • 打赏
  • 举报
回复
json 解析可以使用内部类么, 这个我还真没用过, 是不是这个引起的呢.

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧