jsonArray按照某个字段排序
时间: 2023-08-15 20:01:35 浏览: 128
你可以使用Java中的JSONArray类以及Collections工具类来按照某个字段对JSONArray进行排序。下面是一个示例代码:
```java
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
public class SortJSONArray {
public static void main(String[] args) {
// 假设你有一个JSONArray对象
JSONArray jsonArray = new JSONArray();
// 添加一些JSON对象到JSONArray中
JSONObject obj1 = new JSONObject();
obj1.put("name", "John");
obj1.put("age", 25);
jsonArray.put(obj1);
JSONObject obj2 = new JSONObject();
obj2.put("name", "Alice");
obj2.put("age", 30);
jsonArray.put(obj2);
JSONObject obj3 = new JSONObject();
obj3.put("name", "Bob");
obj3.put("age", 20);
jsonArray.put(obj3);
// 使用Comparator对JSONArray进行排序
List<JSONObject> jsonValues = new ArrayList<>();
for (int i = 0; i < jsonArray.length(); i++) {
try {
jsonValues.add(jsonArray.getJSONObject(i));
} catch (JSONException e) {
e.printStackTrace();
}
}
Collections.sort(jsonValues, new Comparator<JSONObject>() {
private static final String KEY_NAME = "name";
@Override
public int compare(JSONObject a, JSONObject b) {
String valA = "";
String valB = "";
try {
valA = (String) a.get(KEY_NAME);
valB = (String) b.get(KEY_NAME);
} catch (JSONException e) {
e.printStackTrace();
}
return valA.compareTo(valB);
}
});
// 创建一个新的JSONArray来存储排序后的JSON对象
JSONArray sortedJsonArray = new JSONArray();
for (int i = 0; i < jsonArray.length(); i++) {
sortedJsonArray.put(jsonValues.get(i));
}
// 打印排序后的JSONArray
System.out.println(sortedJsonArray.toString());
}
}
```
这个示例代码会按照JSON对象中的"name"字段对JSONArray进行排序,并将排序后的结果打印出来。你可以根据自己的具体需求修改字段名称或者排序的方式。
阅读全文