[英]Alternatives to JSON-object binding in Android application
从我的Android应用程序中,我需要使用RESTful Web服务,该服务将以json格式返回给我一系列对象。 此列表可能很长(大约1000/2000个对象。)。
我需要做的就是搜索和检索json文件中的某些对象。
由于移动设备的内存有限,我当时认为使用对象绑定(例如使用GSON库)可能很危险。
解决此问题的替代方法有哪些?
我从链接中添加了示例,并在其中添加了我的评论:
public List<Message> readJsonStream(InputStream in) throws IOException {
JsonReader reader = new JsonReader(new InputStreamReader(in, "UTF-8"));
List<Message> messages = new ArrayList<Message>();
reader.beginArray();
while (reader.hasNext()) {
Message message = gson.fromJson(reader, Message.class);
// TODO : write an if statement
if(someCase) {
messages.add(message);
// if you want to use less memory, don't add the objects into an array.
// write them to the disk (i.e. use sql lite, shared preferences or a file...) and
// and retrieve them when you need.
}
}
reader.endArray();
reader.close();
return messages;
}
例如
1)以流的形式读取列表并即时处理单个JSON实体,并仅保存您感兴趣的实体
2)将数据读入String对象,然后找到JSON实体并一一处理,而不是同时处理所有实体。 分析JSON结构的字符串的方法包括正则表达式或手动indexOf结合子字符串类型分析。
1)效率更高,但需要更多的工作,因为您必须同时处理流,而2)可能更简单,但它需要您使用相当大的Strings作为临时手段。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.