我正在尝试读取JSON文件并读取其值,并将其存储在List<Data>
对象中。
我正在从ItemReader类中调用列表,然后对其进行处理以将其写入数据库。
我的读者如下所示:
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>
作为输入和输出。
当我尝试将其写入数据库时。我只有一条记录可以将其写入数据库,并且此后将退出。
答案 0 :(得分:0)
而且我相信,只有您能够将其写入数据库的一条记录才是JSON文件中的最后一条记录。
尝试更改部分代码
for(Data data:ulpData){
finalULPData=Collections.unmodifiableList(Arrays.asList(data));
nextULPIndex=0;
}
TO
finalULPData=Collections.unmodifiableList(ulpData);
nextULPIndex=0;