最常用、最推荐的方式是使用jackson库的objectmapper:1. 添加jackson-databind依赖;2. 创建objectmapper实例并复用;3. 调用writevalueasstring()序列化对象;4. 可配置日期格式、空值处理、字段命名策略等。

Java 中把普通 Java 类转换成 JSON 字符串,最常用、最推荐的方式是使用 Jackson 库(尤其是 ObjectMapper),它稳定、高效、支持丰富特性(如注解控制序列化行为、日期格式、空值处理等)。
添加 Jackson 依赖(Maven)
确保项目中引入了 Jackson 的核心依赖:
<dependency><groupid>com.fasterxml.jackson.core</groupid><artifactid>jackson-databind</artifactid><version>2.15.2</version></dependency>
注意:jackson-databind 会自动拉取 jackson-core 和 jackson-annotations,无需单独引入。
使用 ObjectMapper 直接序列化对象
这是最基础也最常用的写法。要求目标类有无参构造器(Jackson 默认需要),字段建议有 getter 方法(或用注解暴露字段):
在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
- 创建
ObjectMapper实例(建议复用,它是线程安全的) - 调用
writeValueAsString(obj)即可获得 JSON 字符串
示例:
public class User {
private String name;
private int age;
private Date createTime;
// 构造器、getter、setter 略
}
// 使用
ObjectMapper mapper = new ObjectMapper();
User user = new User("张三", 28, new Date());
String json = mapper.writeValueAsString(user); // → {"name":"张三","age":28,"createTime":"..."}
处理常见问题(日期、null、驼峰转下划线等)
默认行为可能不符合预期,可通过配置 ObjectMapper 调整:
- 日期格式:用
mapper.registerModule(new JavaTimeModule())(Java 8+ 时间类)或mapper.setDateFormat(...)(旧 Date) - 忽略 null 字段:添加
mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL) - 字段命名策略(如驼峰转下划线):添加
mapper.setPropertyNamingStrategy(PropertyNamingStrategies.SNAKE_CASE) - 中文不乱码(写入字符串时默认正常;若写文件/响应流,需设 UTF-8 编码)
其他可选方案简要说明
Gson(Google):轻量、API 简单,适合简单场景。Gson gson = new Gson(); String json = gson.toJson(user);
缺点:对泛型、复杂嵌套、日期格式控制不如 Jackson 灵活。
Fastjson(阿里,已停止维护):曾因安全漏洞和停更不建议新项目使用。
JSON-B(Java EE/Jakarta EE 标准):标准化但生态弱,实际项目中极少单独选用。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










