1. 程式人生 > 實用技巧 >按照JSONArray中的物件的某個欄位進行排序(採用fastJson)

按照JSONArray中的物件的某個欄位進行排序(採用fastJson)

/**
     * 按照JSONArray中的物件的某個欄位進行排序(採用fastJson)
     * 
     * @param jsonArrStr -->需要排序的json陣列字串
     * 
     */
    public static String jsonArraySort(String jsonArrStr) {
        JSONArray jsonArr = JSON.parseArray(jsonArrStr);
        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>() { // 根據time這個欄位排序 private static final String KEY_NAME = "time"; @Override
public int compare(JSONObject a, JSONObject b) { String valA = new String(); String valB = new String(); try { // 這裡是a、b需要處理的業務,需要根據你的規則進行修改。 String aStr = a.getString(KEY_NAME); valA = aStr.replaceAll("-", ""); String bStr
= b.getString(KEY_NAME); valB = bStr.replaceAll("-", ""); } catch (JSONException e) { // do something } return -valA.compareTo(valB); } }); for (int i = 0; i < jsonArr.size(); i++) { sortedJsonArray.add(jsonValues.get(i)); } return sortedJsonArray.toString(); }