zoukankan      html  css  js  c++  java
  • 排序 json数组数据 2个string同时数据顺序排序

    比较方法及方法调用

     1 import java.util.ArrayList;
     2 import java.util.Collections;
     3 import java.util.Comparator;
     4 import java.util.List;
     5 import com.alibaba.fastjson.JSON;
     6 import com.alibaba.fastjson.JSONArray;
     7 import com.alibaba.fastjson.JSONException;
     8 import com.alibaba.fastjson.JSONObject;
     9 import com.alibaba.fastjson.parser.deserializer.ParseProcess;
    10 
    11 /**
    12  * Java中对JSONArray中的对象的某个字段进行排序
    13  * 
    14  * @author lijianbo
    15  * @version 1.0
    16  *
    17  */
    18 public class Test1 implements ParseProcess {
    19 
    20     public static void main(String[] args) {
    21         String jsonArrStr = "[ { "ID": "2016-05-25", "Name": "Fargo Chan" },{ "ID": "2016-05-23", "Name": "Aaron Luke" },{ "ID": "2016-05-26", "Name": "Dilip Singh" }]";
    22         System.out.println("排序前:"+jsonArrStr);
    23         String jsonArraySort = jsonArraySort(jsonArrStr);
    24         System.out.println("排序后:"+jsonArraySort);
    25     }
    26 
    27     /**
    28      * 按照JSONArray中的对象的某个字段进行排序(采用fastJson)
    29      * 
    30      * @param jsonArrStr
    31      *            json数组字符串
    32      * 
    33      */
    34     public static String jsonArraySort(String jsonArrStr) {
    35         JSONArray jsonArr = JSON.parseArray(jsonArrStr);
    36         JSONArray sortedJsonArray = new JSONArray();
    37         List<JSONObject> jsonValues = new ArrayList<JSONObject>();
    38         for (int i = 0; i < jsonArr.size(); i++) {
    39             jsonValues.add(jsonArr.getJSONObject(i));
    40         }
    41         Collections.sort(jsonValues, new Comparator<JSONObject>() {
    42             // You can change "Name" with "ID" if you want to sort by ID
    43             private static final String KEY_NAME = "ID";
    44 
    45             @Override
    46             public int compare(JSONObject a, JSONObject b) {
    47                 String valA = new String();
    48                 String valB = new String();
    49                 try {
    50                     // 这里是a、b需要处理的业务,需要根据你的规则进行修改。
    51                     String aStr = a.getString(KEY_NAME);
    52                     valA = aStr.replaceAll("-", "");
    53                     String bStr = b.getString(KEY_NAME);
    54                     valB = bStr.replaceAll("-", "");
    55                 } catch (JSONException e) {
    56                     // do something
    57                 }
    58                 return -valA.compareTo(valB);
    59                 // if you want to change the sort order, simply use the following:
    60                 // return -valA.compareTo(valB);
    61             }
    62         });
    63         for (int i = 0; i < jsonArr.size(); i++) {
    64             sortedJsonArray.add(jsonValues.get(i));
    65         }
    66         return sortedJsonArray.toString();
    67     }
    68 
    69 }
  • 相关阅读:
    去重
    JavaScript 数组
    变量
    2017.3.19 for
    2017.3.19 if,for
    2017.3.14
    2017.3.10
    2017.3.9
    2017.3.7-1
    2017.3.7
  • 原文地址:https://www.cnblogs.com/wujianbo123/p/12322847.html
Copyright © 2011-2022 走看看