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

如何使用Spring Batch将数据库输出美化打印写入JSON文件

解决方案

JsonFileItemWriter本身没有直接提供美化输出的配置项,该能力需要通过配置其依赖的JSON序列化组件实现:默认使用的JacksonJsonObjectMarshaller采用无特殊配置的ObjectMapper,没有开启缩进输出特性,你只需要自定义配置ObjectMapper后注入即可,修改后的代码如下:

import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature;
import org.springframework.batch.item.json.JacksonJsonObjectMarshaller;

// 其余包导入保持不变
@Bean
public JsonFileItemWriter<Trade> jsonFileItemWriter() {
    // 初始化自定义配置的ObjectMapper,开启缩进输出
    ObjectMapper objectMapper = new ObjectMapper();
    objectMapper.enable(SerializationFeature.INDENT_OUTPUT);

    // 将自定义ObjectMapper注入到JacksonJsonObjectMarshaller
    JacksonJsonObjectMarshaller<Trade> marshaller = new JacksonJsonObjectMarshaller<>();
    marshaller.setObjectMapper(objectMapper);

    return new JsonFileItemWriterBuilder<Trade>()
                 .jsonObjectMarshaller(marshaller)
                 .resource(new ClassPathResource("trades.json"))
                 .name("tradeJsonFileItemWriter")
                 .build();
}

修改后重新运行任务,输出的JSON就会和你期望的带层级缩进、字段换行的格式完全一致。


内容的提问来源于stack exchange,提问作者Nagaraju Chitimilla

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 08:06:03