我想解析JSON数组并使用gson。首先,我可以记录JSON输出,服务器清楚地响应客户端。
这是我的JSON输出:
[ { id : '1', title: 'sample title', .... }, { id : '2', title: 'sample title', .... }, ... ] 我尝试了这种结构进行解析。一个类,该类取决于单个JSONArray array和ArrayList所有JSONArray。
public class PostEntity {
private ArrayList<Post> postList = new ArrayList<Post>();
public List<Post> getPostList() {
return postList;
}
public void setPostList(List<Post> postList) {
this.postList = (ArrayList<Post>)postList;
}
} 上课时间:
public class Post {
private String id;
private String title;
/* getters & setters */
} 当我尝试使用gson时,没有错误,没有警告,也没有日志:
GsonBuilder gsonb = new GsonBuilder(); Gson gson = gsonb.create();
PostEntity postEnt; JSONObject jsonObj = new JSONObject(jsonOutput); postEnt = gson.fromJson(jsonObj.toString(), PostEntity.class);
Log.d("postLog", postEnt.getPostList().get(0).getId()); 怎么了,我该怎么解决? 问题来源于stack overflow
您可以JSONArray直接解析直接类,不需要再花更多时间包装您的Post类,PostEntity也不需要新的类JSONObject().toString():
Gson gson = new Gson(); String jsonOutput = "Your JSON String"; Type listType = new TypeToken<List >(){}.getType(); List posts = gson.fromJson(jsonOutput, listType); 希望能有所帮助。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。