java json 对象如何对属性排序_Java对象集合、对象数组如何排序?你需要知道这两种方式...
时间: 2024-02-27 13:56:55 浏览: 147
Java中可以使用`JSONObject`类来操作JSON对象,对于JSON对象的属性排序可以通过以下步骤实现:
1. 将JSON对象的属性名存储到一个List中;
2. 对List进行排序,可以使用`Collections.sort`方法并自定义比较器;
3. 遍历排序后的List,根据属性名获取JSON对象的属性值,并重新生成JSON对象。
代码示例:
```java
JSONObject jsonObj = new JSONObject("{\"name\":\"Tom\",\"age\":20,\"city\":\"Beijing\"}");
List<String> keys = new ArrayList<String>(jsonObj.keySet());
Collections.sort(keys);
JSONObject sortedJsonObj = new JSONObject();
for (String key : keys) {
sortedJsonObj.put(key, jsonObj.get(key));
}
System.out.println(sortedJsonObj.toString());
```
对于Java对象集合或对象数组的排序,可以使用`Collections.sort`或`Arrays.sort`方法,并自定义比较器。比较器可以实现`Comparator`接口,重写`compare`方法。
代码示例:
```java
List<Person> personList = new ArrayList<Person>();
personList.add(new Person("Tom", 20));
personList.add(new Person("Alice", 18));
personList.add(new Person("Bob", 22));
Collections.sort(personList, new Comparator<Person>() {
public int compare(Person p1, Person p2) {
return p1.getAge() - p2.getAge();
}
});
for (Person person : personList) {
System.out.println(person.getName() + " " + person.getAge());
}
```
```java
Person[] personArray = new Person[] {
new Person("Tom", 20),
new Person("Alice", 18),
new Person("Bob", 22)
};
Arrays.sort(personArray, new Comparator<Person>() {
public int compare(Person p1, Person p2) {
return p1.getAge() - p2.getAge();
}
});
for (Person person : personArray) {
System.out.println(person.getName() + " " + person.getAge());
}
```
其中,`Person`类的定义如下:
```java
class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
}
```
阅读全文