对于最新稳定版本,请使用Spring Batch Documentation 6.0.0spring-doc.cadn.net.cn

JSON 项阅读器与写入器

Spring Batch 支持以下格式的 JSON 资源读写:spring-doc.cadn.net.cn

[
  {
    "isin": "123",
    "quantity": 1,
    "price": 1.2,
    "customer": "foo"
  },
  {
    "isin": "456",
    "quantity": 2,
    "price": 1.4,
    "customer": "bar"
  }
]

假设JSON资源是一个对应的JSON对象数组 单个物品。Spring Batch 并不绑定任何特定的 JSON 库。spring-doc.cadn.net.cn

JsonItemReader

JsonItemReader将 JSON 解析和绑定委托给org.springframework.batch.item.json.JsonObjectReader接口。该接口 旨在通过使用流式API读取JSON对象来实现 分段。目前提供两种实现:spring-doc.cadn.net.cn

要能够处理JSON记录,需要以下条件:spring-doc.cadn.net.cn

以下示例展示了如何定义JsonItemReader该方法适用于 前述 JSON 资源org/springframework/batch/item/json/trades.json以及一个JsonObjectReader基于Jackson:spring-doc.cadn.net.cn

@Bean
public JsonItemReader<Trade> jsonItemReader() {
   return new JsonItemReaderBuilder<Trade>()
                 .jsonObjectReader(new JacksonJsonObjectReader<>(Trade.class))
                 .resource(new ClassPathResource("trades.json"))
                 .name("tradeJsonItemReader")
                 .build();
}

JsonFileItemWriter

JsonFileItemWriter将物品的整理委托给org.springframework.batch.item.json.JsonObjectMarshaller接口。合同 该接口的目的是将一个对象汇入 JSON 格式字符串. 目前提供两种实现:spring-doc.cadn.net.cn

要能够编写JSON记录,需要以下条件:spring-doc.cadn.net.cn

以下示例展示了如何定义JsonFileItemWriter:spring-doc.cadn.net.cn

@Bean
public JsonFileItemWriter<Trade> jsonFileItemWriter() {
   return new JsonFileItemWriterBuilder<Trade>()
                 .jsonObjectMarshaller(new JacksonJsonObjectMarshaller<>())
                 .resource(new ClassPathResource("trades.json"))
                 .name("tradeJsonFileItemWriter")
                 .build();
}