java工具:《List<User>转jsonArray》

本文涉及的产品
RDS DuckDB + QuickBI 企业套餐,8核32GB + QuickBI 专业版
简介: java工具:《List<User>转jsonArray》

image.png

@[toc]

一、介绍

这段代码演示了使用阿里巴巴 Fastjson 库将 Java 对象列表转换为 JSONArray 的正确方法,并特别指出了常见的错误写法。

首先创建了一个包含多个 User 对象的 List 列表。代码重点展示了两种转换方式:

  • 错误写法:直接调用 list.toString() 后使用 JSONArray.parseArray() 解析,由于 List.toString() 输出格式不是标准 JSON 格式,会抛出解析异常
  • 正确写法:先通过 JSONObject.toJSONString(list) 将列表序列化为标准 JSON 字符串,再使用 JSONArray.parseArray() 解析为 JSONArray

同时注释中还提供了另一种正确方式:手动遍历列表,创建 JSONObject 并逐个添加到 JSONArray 中。

二、代码

@Test
public void listConverjJsonArray(){
   
    List<User> list = new ArrayList<>();
    list.add(new User(1, "a"));
    list.add(new User(2, "b"));
    //错误写法,因为list.toString()输出[User(id=1, name=a), User(id=2, name=b)]。这东西无法json解析,会报错:com.alibaba.fastjson.JSONException: syntax error, pos 2, line 1, column 3[User(id=1, name=a), User(id=2, name=b)]
    //        JSONArray jsonArray =JSONArray.parseArray(list.toString());
    //正确写法,简写方式
    JSONArray jsonArray =JSONArray.parseArray(JSONObject.toJSONString(list));

    //正确写法,复杂方式
    //        JSONArray jsonArray = new JSONArray();
    //        JSONObject jsonObject = null;
    //        for (User user: list) {
   
    //            jsonObject = new JSONObject();
    //            jsonObject.put("id", user.getId());
    //            jsonObject.put("name", user.getName());
    //            jsonArray.add(jsonObject);
    //        }
    System.out.println(jsonArray);
}

image.png

重要信息

image.png
image.png
image.png

目录
相关文章
|
1月前
|
Java
java工具:《List<Integer>转int[]》
java工具:《List<Integer>转int[]》
103 1
|
安全 Java 数据安全/隐私保护
|
安全 前端开发 Java
SpringSecurity如何放行资源
SpringSecurity如何放行资源
852 2
|
存储
第42节: Vue3 组件之间传值
第42节: Vue3 组件之间传值
396 1
|
1月前
|
关系型数据库 MySQL Apache
Flink CDC 3.6.0:支持 Flink 1.20/2.2, MySQL/PostgreSQL入湖入流支持Schema Evolution
Apache Flink CDC 3.6.0 正式发布!支持 Flink 1.20.x/2.2.x 与 JDK 11,增强端到端 Schema Evolution(MySQL/PostgreSQL 入湖入流),新增 Oracle Source 与 Hudi Sink 连接器,全面覆盖主流数据湖生态,并优化 Transform 框架、YAML 路由及多连接器能力。(239字)
601 2
Flink CDC 3.6.0:支持 Flink 1.20/2.2, MySQL/PostgreSQL入湖入流支持Schema Evolution
|
存储 安全 网络安全
云桌面:云计算桌面
云桌面的定义和核心概念 云桌面是一种通过云计算技术提供的虚拟桌面服务,它允许用户通过网络访问远程服务器上的虚拟机,这些虚拟机为用户提供了一个完整的桌面环境。用户可以像使用本地计算机一样使用云桌面,进行文件编辑、上网浏览、运行应用程序等操作。
1929 68
|
8月前
|
存储 人工智能 数据可视化
企业级 AI 模型无代码落地指南:基于阿里云工具链,从 0 到 1 实现业务价值
某汽车零部件厂商通过阿里云PAI、OSS等工具,实现无代码AI质检落地:仅用控制台操作完成数据治理到部署,质检效率提升3倍,模型周期从2月缩至2周。本文详解全栈可视化方案,助力企业零代码落地AI。
931 1
|
算法 Java 数据库连接
SpringBoot3分库分表
按照业务拆分的方式称为垂直分片,又称为纵向拆分,它的核心理念是专库专用;水平分片又称为横向拆分,是通过某些字段根据某种规则将数据分散至多个库或表中。
1436 0
|
Java API
Java 8,如何对 ArrayList 元素进行排序?
【8月更文挑战第16天】
2220 2
Java 8,如何对 ArrayList 元素进行排序?
|
Java API 存储
Java如何对List进行排序?
【7月更文挑战第26天】
2241 9
Java如何对List进行排序?