到目前为止,我的方法:
@Bean
FlatFileItemReader<Blub> flatFileItemReader() {
FlatFileItemReader<Blub> reader = new FlatFileItemReader<>();
reader.setResource(new FileSystemResource("test.json"));
JsonLineMapper lineMapper = new JsonLineMapper();
reader.setLineMapper(lineMapper);
return reader;
}
挑战是:reader.setLineMapper()
无法使用JsonLineMapper
。如何JsonLineMapper
正确使用?
如何设置FlatFileItemReader读取json文件?
这取决于您的json文件的格式:
例如:
{object1}
{object2}
那么您有两种选择:
JsonLineMapper
返回的Map<String, Object>
。在这种情况下,您的读者也应该返回,Map<String, Object>
并且您可以使用项目处理器将项目从转换Map<String, Object>
为Blub
(顺便说一句,将数据从一种类型转换为另一种是项目处理器的典型用例)LineMapper<Blub>
基于Jackson或Gson或任何其他库的自定义实现(如@clevertension的答案所示)例如:
[
{object1},
{object2}
]
那么您可以使用JsonItemReader
我们在4.1.0.M1版本中引入的新功能