package com.lutao.cloud.oil.util;

import cn.hutool.json.JSONArray;
import cn.hutool.json.JSONObject;

import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;

/**
 * @description:
 * @author: vincent.zhao
 * @create: 2024-09-04 15:22
 **/
public class JsonUtils {

    /**
     * @Description: jsonArray排序
     * @Param: [cn.hutool.json.JSONArray, java.lang.String]
     * @Return: cn.hutool.json.JSONArray
     * @Author: vincent.zhao
     * @Date: 2024/9/4 15:25
     */
    public static JSONArray sortJSONArrayByField(JSONArray jsonArray, final String fieldName) {

        // 将 JSONArray 转换为 List<JSONObject>
        List<JSONObject> list = new ArrayList<>();
        for (int i = 0; i < jsonArray.size(); i++) {
            list.add(jsonArray.getJSONObject(i));
        }

        // 使用 Comparator 对 List 进行排序
        list.sort(new Comparator<JSONObject>() {
            @Override
            public int compare(JSONObject o1, JSONObject o2) {
                String val1 = o1.getStr(fieldName, "");
                String val2 = o2.getStr(fieldName, "");
                return val1.compareTo(val2);
            }
        });

        // 将排序后的 List 转换回 JSONArray
        JSONArray sortedArray = new JSONArray(list);
        return sortedArray;
    }


}
