Android解析JSON与JSON覆盖
我想知道人们对将JSON解析为POJO与使用JSON覆盖对象的利弊有何看法 用例:返回Person JSON文档的REST调用 e、 g [{“名称”:“名称1”},{“名称”:“名称2},…] 解决方案1: 使用GSON、Jackson、JSONObject/JSONArray(手动)等将所有传入的JSON解析到pojo中 结果:Android解析JSON与JSON覆盖,android,json,parsing,overlay,Android,Json,Parsing,Overlay,我想知道人们对将JSON解析为POJO与使用JSON覆盖对象的利弊有何看法 用例:返回Person JSON文档的REST调用 e、 g [{“名称”:“名称1”},{“名称”:“名称2},…] 解决方案1: 使用GSON、Jackson、JSONObject/JSONArray(手动)等将所有传入的JSON解析到pojo中 结果: class Person { String name; public String getName() { return na
class Person {
String name;
public String getName() {
return name;
}
}
class Person {
JSONObject json;
public String getName() {
json.getString("name");
}
}
解决方案2:
创建使用JSONObject访问方法的覆盖类
结果:
class Person {
String name;
public String getName() {
return name;
}
}
class Person {
JSONObject json;
public String getName() {
json.getString("name");
}
}
特别是,我对Android上有限的系统资源感兴趣。我是想预先承担解析成本并使用更多内存,还是想在数据访问期间(如在ListView中)承担解析成本
这有关系吗?我通常更喜欢解决方案1
列表视图中的项目,则快速访问是必不可少的
ListView
只请求当前可见的数据,因此解析将仅按需进行,并且或多或少与所需的数据量无关看不见的东西
如果解析单个项目需要很长时间,那么解决方案2也可以与异步方法一起使用,比如与ListView
s一起使用的异步图像加载程序。在这种情况下,我会使用下面的方法,因为这样可以防止对同一对象重复解析
class Person {
boolean parsed;
String name;
JSONObject json;
public String getName() {
if (!parsed) {
name = json.getString("name");
json = null;
parsed = true;
}
return name;
}
}