在Pom.xml里边添加两个依赖,
<dependency>
<groupId>commons-collections</groupId>
<artifactId>commons-collections</artifactId>
<version>3.2.2</version>
</dependency>
<dependency>
<groupId>commons-beanutils</groupId>
<artifactId>commons-beanutils</artifactId>
<version>1.9.3</version>
</dependency>
继承上一篇,Json先转化成List,再对其值进行降序操作,
package cs;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import java.util.Map;
import org.apache.commons.beanutils.BeanComparator;
import org.apache.commons.collections.ComparatorUtils;
import org.apache.commons.collections.comparators.ComparableComparator;
import org.apache.commons.collections.comparators.ComparatorChain;
import net.sf.json.JSONArray;
public class JsonToList {
public static void main(String[] args) {
/**
* 创建一个json类字符串
*/
String json = "[{\"id\":\"1\",\"name\":\"zhangsan\",\"value\":\"11\"},"
+ "{\"id\":\"2\",\"name\":\"lisi\",\"value\":\"22\"},"
+ "{\"id\":\"3\",\"name\":\"wangwu\",\"value\":\"33\"}]";
/**
* Json转换成List<Systemstatus>
*/
List<Systemstatus> list = (List<Systemstatus>)JSONArray.toList(JSONArray.fromObject(json),Systemstatus.class);
/**
* 输出
*/
Systemstatus ss = null;
for(int i = 0; i < list.size(); i++) {
ss = list.get(i);
System.out.println("id = " + ss.getId() + ",name = " + ss.getName() + ",value = " + ss.getValue());
}
//工具包 进行降序排序
Comparator mycmp1 = ComparableComparator.getInstance();
//逆序
mycmp1 = ComparatorUtils.reversedComparator(mycmp1);
ArrayList<Object> sortFields = new ArrayList<>();
//主排序(第一排序)
sortFields.add(new BeanComparator("value", mycmp1));
// 创建一个排序链
ComparatorChain multiSort = new ComparatorChain(sortFields);
// 开始真正的排序,按照先主,后副的规则
Collections.sort(list, multiSort);
System.out.println("工具包降序排序后:");
for(int i = 0; i < list.size(); i++) {
ss = list.get(i);
System.out.println("id = " + ss.getId() + ",name = " + ss.getName() + ",value = " + ss.getValue());
}
}
}
输出为:
id = 1,name = zhangsan,value = 11
id = 2,name = lisi,value = 22
工具包降序排序后:
id = 3,name = wangwu,value = 33
id = 2,name = lisi,value = 22