Java中推荐使用Jackson库(ObjectMapper)将对象序列化为JSON字符串,需添加jackson-databind依赖,调用writeValueAsString()方法,注意getter访问或注解配置;可定制日期格式、空值处理及字段忽略;Gson轻量、Fastjson2性能高但Jackson更稳定安全。

Java 中把对象序列化为 JSON 字符串,最常用、最推荐的方式是使用 Jackson 库(尤其是 ObjectMapper),它稳定、高效、功能丰富,且对主流框架(如 Spring)原生支持。
用 Jackson 将对象转成 JSON 字符串
添加 Jackson 依赖(Maven):
<dependency><br><groupid>com.fasterxml.jackson.core</groupid><br><artifactid>jackson-databind</artifactid><br><version>2.15.3</version><br></dependency>
代码示例:
ObjectMapper mapper = new ObjectMapper();<br>MyUser user = new MyUser("张三", 28);<br>String json = mapper.writeValueAsString(user); // → {"name":"张三","age":28}注意:writeValueAsString() 要求对象的字段有 public getter 方法(或通过注解开启私有字段访问)。
处理常见问题:日期、空值、忽略字段
默认情况下,Jackson 可能输出时间戳(如 "birthDate":1712345678900)或抛出异常。可配置 ObjectMapper:
- 格式化日期:
mapper.registerModule(new JavaTimeModule());+@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") - 忽略 null 字段:
mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL); - 忽略某个字段:
@JsonIgnore注解加在字段或 getter 上 - 重命名字段名:
@JsonProperty("user_name")
替代方案:Gson 和 Fastjson(简要对比)
Gson(Google)轻量、易上手,适合简单场景:
Gson gson = new Gson();<br>String json = gson.toJson(user);
Fastjson(阿里)性能高但近年存在安全风险,新版(Fastjson2)已改进,若项目已有历史依赖可考虑升级;新项目建议优先选 Jackson。
不推荐手动拼接或用 JSONObject
避免用 org.json.JSONObject 手动 put 字段生成 JSON——易出错、难维护、不支持泛型和复杂嵌套。也不建议自己写递归序列化逻辑,既重复造轮子又容易遗漏 null、循环引用等边界情况。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











