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

简介: 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

目录
相关文章
|
5月前
|
安全 Java 索引
java工具:《对Collections.sort排序后我想制定查询几条,比如list有10条,我只想获取前4条》
java工具:《对Collections.sort排序后我想制定查询几条,比如list有10条,我只想获取前4条》
185 12
|
6月前
|
Java
java工具:《Java 8 Stream实战:一行代码搞定集合对象类型转换》
java工具:《Java 8 Stream实战:一行代码搞定集合对象类型转换》
229 6
java工具:《Java 8 Stream实战:一行代码搞定集合对象类型转换》
|
4月前
|
缓存 供应链 API
1688商品详情API(1688.item_get)Python实战:构建B2B供应链数据中台
本文详解1688开放平台2.0官方API(`1688.item_get`)接入实战,涵盖HMAC-MD5签名算法、环境配置、Python完整代码及高频问题解决方案,助力企业构建稳定、合规的B2B供应链数据同步系统。
621 1
|
5月前
|
Java
java工具:《List集合按照某个属性值又打大小排序》
java工具:《List集合按照某个属性值又打大小排序》
224 3
|
5月前
|
SQL 分布式计算 Serverless
鹰角网络:EMR Serverless Spark 在《明日方舟》游戏业务的应用
鹰角网络为应对游戏业务高频活动带来的数据潮汐、资源弹性及稳定性需求,采用阿里云 EMR Serverless Spark 构建云原生大数据架构,迁移后实现计算加速50%,核心链路产出时间提前1.5h,研发效率和稳定性显著提升!
|
7月前
|
存储 运维 分布式计算
诗悦游戏基于DLF与EMR StarRocks降本38%
诗悦网络(2014年成立)是千人规模的研运一体手游公司,代表作有《长安幻想》《永夜降临》等。为支撑PB级开放世界新游《望月》,其原半托管StarRocks数据平台面临高成本、难运维、稳定性差等痛点。阿里云以Serverless StarRocks+DLF Paimon数据湖方案实现存算分离、多租户隔离与全托管运维,总成本降38%,查询性能提升40%+,RPO=0,全面赋能实时/近实时/离线场景。
549 3
|
9月前
|
Windows
VirtualBox的windows server 2016安装增强功能
VirtualBox的windows server 2016安装增强功能
202 2
|
存储 人工智能 数据可视化
企业级 AI 模型无代码落地指南:基于阿里云工具链,从 0 到 1 实现业务价值
某汽车零部件厂商通过阿里云PAI、OSS等工具,实现无代码AI质检落地:仅用控制台操作完成数据治理到部署,质检效率提升3倍,模型周期从2月缩至2周。本文详解全栈可视化方案,助力企业零代码落地AI。
1365 1
|
存储 安全 网络安全
云桌面:云计算桌面
云桌面的定义和核心概念 云桌面是一种通过云计算技术提供的虚拟桌面服务,它允许用户通过网络访问远程服务器上的虚拟机,这些虚拟机为用户提供了一个完整的桌面环境。用户可以像使用本地计算机一样使用云桌面,进行文件编辑、上网浏览、运行应用程序等操作。
2122 68
|
弹性计算 运维 算法
阿里云 Elasticsearch Serverless 检索增强型 8.17 版来袭!
阿里云Elasticsearch Serverless 8.17版本,深度融合无服务器架构与分层扩展能力,面向信息检索、向量搜索、语义分析等通用场景,提供全托管服务,在最新特性扩展、自动扩缩性能、资源成本优化等维度均有显著提升。
958 15