Java 比较JSON格式的API响应和CSV,两者都有数百万条记录,CSV列名与JSON字段不同

Java 比较JSON格式的API响应和CSV,两者都有数百万条记录,CSV列名与JSON字段不同,java,json,csv,jackson,Java,Json,Csv,Jackson,我已经将Json响应转换为Jackson对象映射器,并将CSV转换为CSV映射器对象。我应该如何比较这两者?这是正确的方法吗 public void test\u CSVtoObject()抛出KronosCoreCommonException,IOException{ 文件csvFile=新文件(“C:\\Users\\Desktop\\PayrollCSV.csv”); CsvMapper CsvMapper=新的CsvMapper(); CsvSchema CsvSchema=csvMap

我已经将Json响应转换为Jackson对象映射器,并将CSV转换为CSV映射器对象。我应该如何比较这两者?这是正确的方法吗

public void test\u CSVtoObject()抛出KronosCoreCommonException,IOException{
文件csvFile=新文件(“C:\\Users\\Desktop\\PayrollCSV.csv”);
CsvMapper CsvMapper=新的CsvMapper();
CsvSchema CsvSchema=csvMapper
.typedSchemaFor(PayrollExtractCSV.class)
.withHeader()
.withColumnSeparator(“,”)
.withComments();
MappingIterator mappingIter=csvMapper
.readerWithTypedSchemaFor(PayrollExtractCSV.class)
.与(csvSchema)
.readValues(csvFile);
列表映射=mappingIter.readAll();
}
public void test_JSONtoObject()抛出KronosCoreCommonException、JsonMappingException、JsonProcessingException{
List personNumberList=新建ArrayList();
personNumberList.add(“1619889490630”);
APIResponse aggregationResponse=PayrollingaPiObject.runAggregationAPI(“T01”,personNumberList);
ObjectMapper mapper=新的ObjectMapper();
AggregationAPI[]AggregationAPI=mapper.readValue(aggregationResponse.getResponseAsString(),AggregationAPI[].class);
writeValueAsString(aggregationAPI);
}

由于输入的大小,您应该注意将所有数据收集到内存中,这可能会导致OutOfMemoryException

对于这两个源,您应该逐行读取数据,同时在处理完旧数据后立即丢弃它

似乎
mappingIter.next()
会起作用,您可以将其用于JSON源代码。 您已经有了一个
PayrollExtractCSV
类,因此您可以从这两个源构建对象,并逐个进行比较