可直接用map配合ObjectMapper的writeValueAsString将对象转JSON字符串并收集为List,需复用static final ObjectMapper实例,封装安全转换方法处理异常,过滤null避免序列化空对象,适用于调试而非高频接口响应。

可以直接用 map 配合 ObjectMapper 的 writeValueAsString 方法,把每个对象转成 JSON 字符串,再收集为 List<string></string>。
确保 ObjectMapper 实例可复用
ObjectMapper 是线程安全的,建议定义为 static final 成员变量或 Spring 中的 Bean,避免重复创建:
private static final ObjectMapper objectMapper = new ObjectMapper();
使用 map 转换每个对象为 JSON 字符串
调用 writeValueAsString 将每个实体序列化,注意捕获可能的 JsonProcessingException:
- 不能在 lambda 中直接 throw 受检异常,需包装为运行时异常或使用工具方法
- 推荐封装一个安全的转换函数,提升可读性和复用性
public static String toJson(Object obj) {
try {
return objectMapper.writeValueAsString(obj);
} catch (JsonProcessingException e) {
throw new RuntimeException("JSON serialization failed", e);
}
}
然后在 Stream 中使用:
使用约定式提交(Conventional Commits)生成标准化的 Git 提交信息。适用于以下场景: (1) 暂存更改时需要提交信息; (2) 审查 diff 时希望获得结构化摘要; (3) 编写 PR 描述或变更日志(changelog)条目; (4) 用户明确要求“为本次更改编写提交信息”。 该功能会分析已暂存/未暂存的 diff,并生成按类型(type)划分范围的提交信息。
立即学习“Java免费学习笔记(深入)”;
List<String> jsonStrings = entities.stream()
.map(YourClass::toJson)
.collect(Collectors.toList());
注意 null 值和空集合的处理
ObjectMapper 默认会将 null 字段忽略(取决于配置),但若实体本身为 null,writeValueAsString 会返回字符串 "null"。如需跳过空对象,可提前过滤:
-
.filter(Objects::nonNull)避免对 null 实体序列化 - 若需保留原始结构(如数组中占位),则无需过滤,直接转换即可
性能与适用场景提醒
这种转换适合调试、日志记录或轻量级数据导出;不建议在高频接口中大量用于响应体生成——Spring MVC 已自动完成对象到 JSON 的转换,手动序列化反而绕过优化机制。
如果只是临时调试打印,也可以用 peek(System.out::println) 辅助观察中间结果。

















