• fastjson根据json数组中对象的某个字段进行排序


    记录一下

    /**
        *@Author:vic
        *@Date:14:59 2018/11/30
        *@Description: is_desc-false升序列  is_desc-true降序 (排序字段为字符串)
        */
    public static String jsonArraySort(JSONArray jsonArr,String sortKey,boolean is_desc) {
            JSONArray sortedJsonArray = new JSONArray();
            List<JSONObject> jsonValues = new ArrayList<JSONObject>();
            for (int i = 0; i < jsonArr.size(); i++) {
                jsonValues.add(jsonArr.getJSONObject(i));
            }
            Collections.sort(jsonValues, new Comparator<JSONObject>() {
                private  final String KEY_NAME = sortKey;
    
                @Override
                public int compare(JSONObject a, JSONObject b) {
                    String valA = new String();
                    String valB = new String();
                    try {
                        valA = a.getString(KEY_NAME);
                        valB = b.getString(KEY_NAME);
                    } catch (JSONException e) {
                        e.printStackTrace();
                    }
                    if (is_desc){
                        return -valA.compareTo(valB);
                    } else {
                        return -valB.compareTo(valA);
                    }
    
                }
            });
            for (int i = 0; i < jsonArr.size(); i++) {
                sortedJsonArray.add(jsonValues.get(i));
            }
            return sortedJsonArray.toString();
        }

    /**
        *@Author:vic
        *@Date:14:59 2018/11/30
        *@Description: is_desc-false升序列  is_desc-true降序 (排序字段为数字类型)
        */

    public static String jsonArraySort(JSONArray jsonArr,String sortKey,boolean is_desc) {
        JSONArray sortedJsonArray = new JSONArray();
    List<JSONObject> jsonValues = new ArrayList<JSONObject>();
    for (int i = 0; i < jsonArr.size(); i++) {
    jsonValues.add(jsonArr.getJSONObject(i));
    }
    Collections.sort(jsonValues, new Comparator<JSONObject>() {
    private final String KEY_NAME = sortKey;

    @Override
    public int compare(JSONObject a, JSONObject b) {
    int valA = 0;
    int valB = 0;
    try {
    valA = a.getIntValue(KEY_NAME);
    valB = b.getIntValue(KEY_NAME);
    } catch (JSONException e) {
    e.printStackTrace();
    }

    if (is_desc){
    if(valA < valB){
    return 1;
    }
    if(valA == valB){
    return 0;
    }
    return -1;
    } else {
    if(valA > valB){
    return 1;
    }
    if(valA == valB){
    return 0;
    }
    return -1;
    }

    }
    });
    for (int i = 0; i < jsonArr.size(); i++) {
    sortedJsonArray.add(jsonValues.get(i));
    }
    return sortedJsonArray.toString();
    }
     
    文末小福利免费视频资源网站(搜索猴):www.sousuohou.com
  • 相关阅读:
    SpringMVC听课笔记(一:SpringMVC概述)
    IDEA快捷键
    Java学习方法以及eclipse看jdk源码
    SpringMVC参数绑定
    正向代理、反向代理
    代理模式
    面试准备
    一致性哈希
    synchronized的底层探索
    哈夫曼编码
  • 原文地址:https://www.cnblogs.com/vicF/p/10044221.html
Copyright © 2020-2023  润新知