热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Java如何将一个JSONArray按照某字段排序

首先需要引入fastjson的jar包publicstaticvoidmain(String[]args){JSONArrayarraynewJSONArray();JSONOb

首先需要引入 fastjson 的 jar 包

public static void main(String[] args) {JSONArray array &#61; new JSONArray();JSONObject obj1 &#61; new JSONObject();obj1.put("score",70);obj1.put("name","张三");array.add(obj1);JSONObject obj2 &#61; new JSONObject();obj2.put("score",80);obj2.put("name","李四");array.add(obj2);JSONObject obj3 &#61; new JSONObject();obj3.put("score",60);obj3.put("name","王五");array.add(obj3);JSONArray result &#61; jsonArraySort(array,"score",true);for (int i &#61; 0; i < result.size(); i&#43;&#43;) {System.out.println(result.getJSONObject(i).getString("name"));}
}/*** array 传入待排序的 JSONArray* sortColName 排序字段* isAsc 升序还是降序&#xff0c;true表示升序* sortColName,isAsc 需要加 final,否则现有环境 jenkins 打版本会失败*/
public static JSONArray jsonArraySort(JSONArray array, final String sortColName,final boolean isAsc) {JSONArray sortedJsonArray &#61; new JSONArray();List<JSONObject> jsonList &#61; new ArrayList<JSONObject>();for (int i &#61; 0; i < array.size(); i&#43;&#43;) {jsonList.add(array.getJSONObject(i));}//将 JSONArray 转换成 List,本质上还是对 List 进行排序Collections.sort(jsonList, new Comparator<JSONObject>() {&#64;Overridepublic int compare(JSONObject o1, JSONObject o2) {String valA &#61; o1.getString(sortColName);String valB &#61; o2.getString(sortColName);if (isAsc) {// 升序return valA.compareTo(valB);} else {return valB.compareTo(valA);}}});// 此时jsonList已经是排完序的集合了for(JSONObject obj : jsonList) {sortedJsonArray.add(obj);}return sortedJsonArray;
}

输出结果&#xff1a;

王五
张三
李四


推荐阅读
author-avatar
手机用户2502932807
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有