【发布时间】:2020-07-13 03:13:56
【问题描述】:
我正在尝试读取 JSON 文件并读取其值并将其存储在 List<Data> 对象中。
我正在从我的 ItemReader 类中调用 List 并对其进行处理以将其写入数据库。
我的阅读器如下所示:
public class JsonItemReaderFromULProspector implements ItemReader<Data>{
// static String jsonFilePath = Directory.JSON_FILE_PATH;
private int nextULPIndex;
public JsonItemReaderFromULProspector() {
initialize();
}
private List<Data> finalULPData;
private void initialize() {
List<Data> ulpData=ReadJSONFromULP.getJsonObject();
for(Data data:ulpData){
finalULPData=Collections.unmodifiableList(Arrays.asList(data));
nextULPIndex=0;
}
}
@Override
public Data read()throws Exception, UnexpectedInputException, ParseException, NonTransientResourceException {
Data nextULPData=null;
if (nextULPIndex < finalULPData.size()) {
nextULPData = finalULPData.get(nextULPIndex);
nextULPIndex++;
}
return nextULPData;
}
}
而我的处理器是一个普通的处理器,它以<Data,ULProspector> 作为输入和输出。
当我尝试将其写入数据库时。我只能将一条记录写入数据库,然后它就会退出。
【问题讨论】:
-
在这种情况下,您的阅读器只返回一个元素。检查您的
read方法并确保它在返回null之前返回多个元素。
标签: spring spring-boot maven model-view-controller spring-batch