按照JSONArray中的物件的某個欄位進行排序(採用fastJson)
阿新 • • 發佈:2020-11-20
/** * 按照JSONArray中的物件的某個欄位進行排序(採用fastJson) * * @param jsonArrStr -->需要排序的json陣列字串 * */ public static String jsonArraySort(String jsonArrStr) { JSONArray jsonArr = JSON.parseArray(jsonArrStr); JSONArray sortedJsonArray = new JSONArray(); List<JSONObject> jsonValues = newArrayList<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"; @Overridepublic 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(); }