要将一个 JSONObject 转换成 List,需要先将 JSONObject 转换成 JSONArray,然后遍历 JSONArray,逐个将元素转换成 T 类型的对象,最后将所有的对象添加到 List 中。

以下是一个示例代码:

import org.json.JSONArray;
import org.json.JSONObject;

public class JsonUtils {
    public static <T> List<T> jsonArrayToList(JSONArray jsonArray, Class<T> clazz) {
        List<T> list = new ArrayList<>();

        for (int i = 0; i < jsonArray.length(); i++) {
            JSONObject jsonObject = jsonArray.optJSONObject(i);
            if (jsonObject != null) {
                T object = jsonObjectToObject(jsonObject, clazz);
                if (object != null) {
                    list.add(object);
                }
            }
        }

        return list;
    }

    private static <T> T jsonObjectToObject(JSONObject jsonObject, Class<T> clazz) {
        T object = null;

        try {
            object = clazz.newInstance();
            // 根据实际情况,使用反射或其他方式将JSONObject的属性值设置到对象中
            // 例如:object.setXXX(jsonObject.optXXX('key'));
        } catch (InstantiationException | IllegalAccessException e) {
            e.printStackTrace();
        }

        return object;
    }
}

使用示例:

// 假设jsonObject是要转换的JSONObject对象,T是要转换成的对象类型
JSONArray jsonArray = jsonObject.getJSONArray('arrayKey');
List<T> list = JsonUtils.jsonArrayToList(jsonArray, T.class);

请根据你的实际需求修改 JsonUtils 中的 jsonObjectToObject 方法,将 JSONObject 的属性值设置到具体的对象中。

Java JSONObject 转 List<T>:解析 JSON 数组并映射为对象列表

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

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