对一个jsonarray对象进行排序,可根据内部字段定义排序
public static void main(String[] args){
String json="[{id:2,name:'李布',age:'15'},{id:1,name:'杜甫',age:'15'},{id:3,name:'李太白',age:'18'},{id:4,name:'李白',age:'18'}]";
JSONArray ja=JSONArray.fromObject(json);
ComparatorChain compChain=new ComparatorChain();
Comparator comp=ComparableComparator.getInstance();
comp=ComparatorUtils.reversedComparator(comp);
compChain.addComparator(new BeanComparator("id"));
compChain.addComparator(new BeanComparator("age",comp));
System.out.println(ja);
Collections.sort(ja, compChain);
System.out.println(ja);
}//out:
{"id":2,"name":"李布","age":"15"}
{"id":1,"name":"杜甫","age":"15"}
{"id":3,"name":"李太白","age":"18"}
{"id":4,"name":"李白","age":"18"}
//out:
{"id":1,"name":"杜甫","age":"15"}
{"id":2,"name":"李布","age":"15"}
{"id":3,"name":"李太白","age":"18"}
{"id":4,"name":"李白","age":"18"}
依赖的包有
commons-collections.jar
commons-beanunits.jar
commons-lang.jar
json-lib-jdk15.jar
ezmorph.jar

本文提供了一个使用Java对JSON数组按内部字段进行排序的例子。通过ComparatorChain和BeanComparator实现了先按'id'升序再按'age'降序排列。所需依赖包括commons-collections等。
1098

被折叠的 条评论
为什么被折叠?



