按字母顺序对服务器的响应进行排序

时间:2017-03-14 20:30:49

标签: java android json retrofit2

我从服务器那里得到这样的回复,

[  
 {  
  "id":"b2",
  "type":"ball"
 },
 {  
  "id":"a1",
  "type":"apple",
 },
 {  
  "id":"d4",
  "type":"dog",
 },
 {  
  "id":"c3",
  "type":"cat",
 }
]

但我需要根据“类型”基于字母顺序对上述响应数据进行排序。然后显示列表,我使用模型来解析数据。

4 个答案:

答案 0 :(得分:1)

您将JSON解析为什么数据结构?例如,如果您的Item类类似于:

class Item {
  Item(String id, String type) { ... }
  String getType() { ... }
  String getId() { ... }
}

您将JSON解析为某种List<Item>,然后以下内容适用于按类型排序(API级别24+),请参阅Comparator.comparing

List<Item> items = ...; // however you parse the JSON
Comparator<Item> byType = Comparator.comparing(Item::getType);
Collection.sort(items, byType); // items will now be sorted

对于适用于较旧API级别的更通用方法,您可以像这样定义byType比较器:

Comparator<Item> byType = new Comparator<Item> {
 public int compare(Item a, Item b) {
   return a.getType().compareTo(b.getType());
 }
};

答案 1 :(得分:0)

你不能让你的课可比和使用:

type.compareTo()

在oder中你自己的compareTo方法能够按类型对它们进行排序吗?

答案 2 :(得分:0)

Json是一个对象,是一组无序的名称/值对。 见http://json.org。 转换为对象进行排序。

答案 3 :(得分:0)

将其转换为Object并实现Comparable<>接口。用途:

CompareTo()