【问题标题】:Sorting JSON data that comes from Retrofit2 on API Level 15在 API 级别 15 上对来自 Retrofit2 的 JSON 数据进行排序
【发布时间】:2018-09-27 00:41:24
【问题描述】:

我是改装新手。我正在使用 Comparator 对我的 json 进行排序,但我发现这段代码是从 api 24 添加的。我如何对 api 15 的数据进行排序。 我不想在将数据放入 mysql 之前对其进行排序,我想通过 android 编码来完成。

这是我的示例数据

[
  {
    "id": "1", 
    "name": "name1", 
    "lastname": "lastname1", 
    "rank": "1", 
   }, 
   {
    "id": "2", 
    "name": "name2", 
    "lastname": "lastname2", 
    "rank": "10", 
   },
   {
    "id": "20", 
    "name": "name20", 
    "lastname": "lastname20", 
    "rank": "105", 
   }
}

还有一些其他问题:

如何从改造中删除具有一个参数为空的传入数据?

如何获取等级为 105 的对象?

【问题讨论】:

  • 先将JSON解析成POJO(Java模型类),然后对POJO列表进行排序
  • I dont want to sort data before getting it in mysql - 为什么不在 MySQL 中排序呢?这不会简化您的 Android 代码吗?
  • 因为我从公共站点获取 json 并且无权访问数据库

标签: android json sorting compare retrofit2


【解决方案1】:

在任何模型中获取您的响应,例如

喜欢

列出数据;

响应在哪里

公共类响应{

    public int id;
    public String name;

    boolean isValid() {
        return id > 0 && !TextUtils.isEmpty(name);
    }

}

并过滤无效响应,如

     ListIterator iterator = data.listIterator();

        while (iterator.hasNext()) {
            Response response = (Response) iterator.next();
            boolean success = response.isValid();

            if (!success) {
                iterator.remove();
            }
        }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-09-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-30
    • 2017-11-24
    • 2019-10-11
    • 2021-12-23
    相关资源
    最近更新 更多