【问题标题】:Sort Java Objects Alphabetically to a JSON Object按字母顺序将 Java 对象排序为 JSON 对象
【发布时间】:2014-12-22 09:15:36
【问题描述】:

你好,我希望有人能帮忙,我希望把这个列表按字母顺序排序到这个 json 对象中 但是我的逻辑有点麻烦。我使用了如下的 compareTo 方法,但似乎无法让它工作(尝试了几种不同的方法,提前感谢任何可以提供帮助的人

      JSONObject practiceDetailsJson = new JSONObject();
         for (Practice practice : practices) {
            practice.getPracticeName().compareTo(obj2.getName());
            practiceDetailsJson.put("practiceName", practice.getPracticeName());
            practiceDetailsJson.put("practiceCode", practice.getPracticeCode());
            practiceDetailsJson.put("practiceId", practice.getRowid());
            practicesAsJSON.add(practiceDetailsJson);
            }
        }

【问题讨论】:

  • “似乎无法让它工作”。什么是 obj2,在将数组添加到 JSONObject 的 for 循环中调用 compareTo 时,您希望实现什么?
  • 我希望在练习中按字母顺序比较第一个和第二个对象,看看哪个是第一个,也许你可以建议另一种方法?
  • 您是否要对一组对象进行排序?也许你应该在为 Practice 类实现 Comparator 之后调用 sort()
  • @Maria88 阅读here 如何对List 对象进行排序。您需要实现ComparableComparator 接口并遍历List 以创建JSON 列表。

标签: java json sorting for-loop alphabetical


【解决方案1】:

您可以尝试在这里创建一个比较器。

class PracticeComparator implements Comparator<Practice> {
           @Override
           public int compare(Practice p1, Practice p2) {

                return p1.getPracticeName().compareTo(p2.getPracticeName());
           }
}

你可以像这样使用这个比较器:-

Collections.sort(practices, new PracticeComparator());

现在您可以再次迭代实践以将其转换为 JSON 格式。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-01-30
    • 2023-01-30
    • 1970-01-01
    • 1970-01-01
    • 2013-10-28
    • 2019-06-15
    • 2015-08-25
    • 2012-11-03
    相关资源
    最近更新 更多