在 Java 中,可以通过实现 Comparator 接口来对 JsonArray 中的 JsonObject 根据日期字段进行排序。以下是一个示例代码:

import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.Comparator;
import org.json.JSONArray;
import org.json.JSONObject;

public class JsonArraySortByDateExample {
    public static void main(String[] args) {
        JSONArray jsonArray = new JSONArray();
        jsonArray.put(createJsonObject('2021-01-01', 'Object 1'));
        jsonArray.put(createJsonObject('2022-05-10', 'Object 2'));
        jsonArray.put(createJsonObject('2020-12-25', 'Object 3'));

        jsonArray.sort(Comparator.comparing(JsonArraySortByDateExample::getDateFromJsonObject));

        System.out.println(jsonArray.toString(4));
    }

    private static JSONObject createJsonObject(String dateStr, String name) {
        JSONObject jsonObject = new JSONObject();
        jsonObject.put('date', dateStr);
        jsonObject.put('name', name);
        return jsonObject;
    }

    private static LocalDate getDateFromJsonObject(Object obj) {
        if (obj instanceof JSONObject) {
            JSONObject jsonObject = (JSONObject) obj;
            String dateStr = jsonObject.optString('date');
            DateTimeFormatter formatter = DateTimeFormatter.ofPattern('yyyy-MM-dd');
            return LocalDate.parse(dateStr, formatter);
        }
        return null;
    }
}

这个示例代码创建了一个 JsonArray,其中包含三个 JsonObject,每个 JsonObject 都有一个日期字段和一个名称字段。然后,通过实现 Comparator 接口来创建一个比较器,使用日期字段来进行比较。最后,使用 sort 方法对 JsonArray 进行排序,并将结果打印出来。

注意,这个示例代码使用了 Java 8 中的 LocalDateDateTimeFormatter 类来处理日期。如果你使用的是较早的 Java 版本,可能需要使用其他的日期处理方式。

Java 使用 Comparator 对 JsonArray 中的 JsonObject 按日期排序

原文地址: https://www.cveoy.top/t/topic/pMNZ 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录