我有点困惑,因为很长一段时间我将json响应直接保存到ArrayList>并显示到我的listView,但现在,看着其他人的代码,我注意到他们正在使用POJO类与JSON进行交互,这是更好的方法吗?如果是请解释原因?因为使用POJO意味着我必须编写额外的代码,但如果将响应直接保存到arraylist使我的工作完成,那么我为什么要使用POJO类?
答案 0 :(得分:0)
这里没有对错的答案。这一切都取决于您的用例。如果您的解决方案有效,并且您对此感到满意,我就不明白为什么您需要更改它。
如果我不得不选择,我会选择POJO课来代表回应,但这是一个主观意见。我认为您有以下好处:
Map
,而是特定类的实例,它们可以具有更具体的行为。您可以指定自然顺序,相等标准等 - 可能对您的程序逻辑有用的事情还有一些情况会更好地适应无POJO方法 - 例如,如果您只显示数据,而不是在应用程序内以任何方式操纵它。或者,如果您想减少一些时间来进行复杂的解析,那么在尝试扩充对象层次结构时可能需要这些解析。
我最好的建议是 - 分析您的应用,检查您的使用案例,并做出明智的决定哪种方法更好。
答案 1 :(得分:0)
但如果将响应直接保存到arraylist就可以完成我的工作
如果您在地图中收集对象,则可以在地图中应用不同的功能(排序,比较等),但是如果您的地图包含POJO而不是JSONS。
4.对象缩放和映射: 让我们有一些对象用户的图像:
public class User{
int id;
@SerializedName("specific_id_for_blah_blah")
private int mSpecId
@SerializedName("date_of_birthaday")
private String mBDay;
public Date getBirthday() {
return new Date(mBDay);
}
}
这个例子我想说的是什么。
您可以使用一行代码将json映射到POJO
User user = new Gson.fromJson(response, User.class);
很简单,不是吗?
名称序列化。当您的响应包含看起来很长或很奇怪的键名时,您可以使用自己的样式命名,只需使用小注释即可轻松更改。 mSpecId返回值" specific_id_for_blah_blah"