繁体   English   中英

Android应用程序中JSON对象绑定的替代方法

[英]Alternatives to JSON-object binding in Android application

从我的Android应用程序中,我需要使用RESTful Web服务,该服务将以json格式返回给我一系列对象。 此列表可能很长(大约1000/2000个对象。)。

我需要做的就是搜索和检索json文件中的某些对象。

由于移动设备的内存有限,我当时认为使用对象绑定(例如使用GSON库)可能很危险。

解决此问题的替代方法有哪些?

如果使用的是gson,请使用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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM