JsonArray排序
Posted 勤菜鸟
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JsonArray排序相关的知识,希望对你有一定的参考价值。
学过数据结构与算法的人都知道排序是一种基础的算法,常用的排序算法有冒泡法、选择排序、插入排序等。在日常的编码过程中,我们并不关心使用什么样的排序算法,往往是“拿来主义”,直接调用API实现。集合的排序和数据库的排序可以很容易实现,Json作为一种常用的交互式数据格式,常用的Package并未提供按照Json某一字段进行排序的方法。本篇小编用一段简洁的代码实现一个按照Json某一字段进行JsonArray排序的方法。
代码如下(仅列出方法):
publicstatic JsonArray sortJsonArray(JsonArray jsonArray,String key){
List<JsonElement> jsonValues =new ArrayList<JsonElement>();
JsonArray sortedJsonArray = newJsonArray();
try {
for (int i = 0; i < jsonArray.size();i++) {
jsonValues.add(jsonArray.get(i));
}
Collections.sort(jsonValues, newComparator<JsonElement>() {
@Override
public int compare(JsonElementa, JsonElement b) {
Double dataa = a.getAsJsonObject().get(key).getAsDouble();
Double datab =b.getAsJsonObject().get(key).getAsDouble();
returndatab.compareTo(dataa); //降序排列
/**
return dataa.compareTo(datab); //升序排列
*/
}
});
for (int i = 0; i <jsonValues.size(); i++) {
sortedJsonArray.add(jsonValues.get(i));
}
} catch (Exception e) {
e.printStackTrace();
}
return sortedJsonArray;
}
上面方法实现的仅仅是JsonArray按照double类型字段升降序排列的例子,其他类型的字段方法大同小异。通过分析可知,一般的Json Package中并不自带JsonArray按照某字段排序的方法,本例也是将JsonArray转为List后,用Collections接口的sort方法实现的排序。Collections的排序实现我们在这里就不介绍了,网上有很多帖子写的相当详细,读者可以自行检索学习。
以上是关于JsonArray排序的主要内容,如果未能解决你的问题,请参考以下文章