java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > Java List<JSONObject>转换为List<实体类>

Java List<JSONObject>如何转换为List<实体类>

作者:CnLg.NJ

这篇文章主要介绍了Java List<JSONObject>如何转换为List<实体类>的方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

List<JSONObject>转换为List<实体类>

可以使用 Fastjson 的 toJavaObject 方法直接转换,无需中间序列化步骤。

以下是具体实现和注意事项:

import com.alibaba.fastjson.JSONObject;
import java.util.List;
import java.util.stream.Collectors;

public class Converter {
    public static List<Params6000Bean> convert(List<JSONObject> jsonObjectList) {
        return jsonObjectList.stream()
                .map(json -> json.toJavaObject(Params6000Bean.class))
                .collect(Collectors.toList());
    }
}

或通过传统循环实现:

import com.alibaba.fastjson.JSONObject;
import java.util.ArrayList;
import java.util.List;

public class Converter {
    public static List<Params6000Bean> convert(List<JSONObject> jsonObjectList) {
        List<Params6000Bean> result = new ArrayList<>();
        for (JSONObject json : jsonObjectList) {
            Params6000Bean bean = json.toJavaObject(Params6000Bean.class);
            result.add(bean);
        }
        return result;
    }
}

关键步骤说明

1)遍历 List<JSONObject>

使用 Stream API 或循环逐个处理每个 JSONObject

2)调用 toJavaObject() 方法

Fastjson 的 JSONObject.toJavaObject(Class<T> clazz) 直接将 JSON 数据结构映射到目标 Bean 类。

3)收集结果

将转换后的 Params6000Bean 对象收集到新的 List 中。

注意事项

字段匹配

public class Params6000Bean {
    @JSONField(name = "user_name")
    private String userName;
    // 其他字段和 getter/setter
}

类型兼容性

空值处理

性能优化

示例 Bean 类

public class Params6000Bean {
    private String name;
    private int age;
    private boolean isStudent;
    // 必须有 getter/setter 或 public 字段
}

异常处理

如果 JSON 数据可能存在缺失字段或类型错误,建议捕获异常:

try {
    List<Params6000Bean> beans = convert(jsonObjectList);
} catch (Exception e) {
    // 处理转换异常(如字段缺失、类型不匹配)
    e.printStackTrace();
}

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文