您可以JsonItemReader
在 Spring Batch 中使用。在我的例子中,我将 JSON 文件名传递为JobParameter
.
我的 JSON 文件中的示例 JSON 内容。
{
"obj1": "abc",
"obj2": "def"
}
MyObj 类:
@Data
@Builder
public class MyObject{
String obj1;
String obj2;
}
这是我的读者。
@Bean
@StepScope
public JsonItemReader<MyObj> myReader() {
LOGGER.info(LOG_TEMPLATE,
getClass().getSimpleName(),
Thread.currentThread().getStackTrace()[1].getMethodName(),
"Inside Reader...");
final ObjectMapper mapper = new ObjectMapper();
final JacksonJsonObjectReader<MyObj> jsonObjectReader = new JacksonJsonObjectReader<>(
MyObj.class);
jsonObjectReader.setMapper(mapper);
final String filePath = config.getRootfolder() + SEPERATOR + inputInfo.getFileName();
return new JsonItemReaderBuilder<MyObj>().jsonObjectReader(jsonObjectReader)
.resource(new FileSystemResource(filePath))
.name("myReader")
.build();
}