You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将POJO转换为指定结构的JSON并存储至数据库?

问题描述

现有如下Emp类POJO:

@Data
@AllArgsConstructor
@Builder
public class Emp {
    private String position;
    private String name;
}

已创建该类对象:

Emp emp = new Emp("Manager", "Bob");

需将其转换为如下指定结构的JSON格式并存储到数据库:

{
  "list":[
    {
       "position": "Manager",
       "name": "Bob"
    }
  ]
}

尝试通过Collections.singletonList(emp)将对象转为列表后调用toString()存储,但数据库中存储的内容为[Emp(position=Manager, name=Bob)],不符合需求,求现成解决方案。


解决方案

直接调用对象的toString()得到的是Java对象的默认字符串表示,并非标准JSON格式,必须使用专业的JSON序列化工具来处理,以下是两种常用方案:

方案1:使用Jackson库

Jackson是Java生态中广泛使用的JSON处理工具,步骤如下:

  1. 引入Maven依赖(Gradle可对应调整):
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.15.2</version> <!-- 建议使用最新稳定版本 -->
</dependency>
  1. 序列化实现,两种方式可选:

方式一:创建包装类匹配JSON结构

先定义一个包装类来对应目标JSON的外层结构:

@Data
public class EmpWrapper {
    private List<Emp> list;
}

然后执行序列化:

// 初始化包装类并填充数据
EmpWrapper wrapper = new EmpWrapper();
wrapper.setList(Collections.singletonList(emp));

// 初始化Jackson核心类
ObjectMapper objectMapper = new ObjectMapper();
// 序列化为标准JSON字符串
String jsonStr = objectMapper.writeValueAsString(wrapper);

方式二:用Map临时构建结构(无需额外类)

如果不想新增包装类,可直接用Map构建目标结构:

Map<String, Object> dataMap = new HashMap<>();
dataMap.put("list", Collections.singletonList(emp));

ObjectMapper objectMapper = new ObjectMapper();
String jsonStr = objectMapper.writeValueAsString(dataMap);

方案2:使用FastJSON库

FastJSON是国内常用的高性能JSON处理库,步骤如下:

  1. 引入Maven依赖:
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
    <version>2.0.25</version> <!-- 建议使用最新稳定版本 -->
</dependency>
  1. 序列化实现,两种方式可选:

方式一:使用包装类

EmpWrapper wrapper = new EmpWrapper();
wrapper.setList(Collections.singletonList(emp));
// 直接序列化为JSON字符串
String jsonStr = JSON.toJSONString(wrapper);

方式二:用Map构建结构

Map<String, Object> dataMap = new HashMap<>();
dataMap.put("list", Collections.singletonList(emp));
String jsonStr = JSON.toJSONString(dataMap);

最后将生成的jsonStr存入数据库,即可得到符合要求的JSON格式。


内容的提问来源于stack exchange,提问作者Sam Johnson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 10:20:42