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排序的主要内容,如果未能解决你的问题,请参考以下文章

JSONArray排序

排序JSONArray后,自定义列表视图没有改变?

jsonArray中按字段排序

JsonArray排序

如何按日期和时间对 jsonarray 数据进行排序并放入列表视图适配器

jsonarray按指定字段进行排序