所以我有一个非常大的 JSON 文件(600MB),我的 Java 项目中有几个模块可以导入 JSON 文件中的每个项目,并将其属性写入一个巨大数据库中的几个表中。它非常适用于到目前为止我必须处理的相对较小的 JSON 文件,但这个文件会使 JVM 抛出 OutOfMemoryException。我使用的库是 Jackson,我在以下函数的 Java 列表中加载 JSON 文件中的每个项目:
public List<Products> listOfProducts(String JSONString)
throws JsonParseException, JsonMappingException, IOException {
byte[] latin1 = JSONString.getBytes("ISO-8859-1");
String fromUtf8Bytes = new String(latin1);
ObjectMapper mapper = new ObjectMapper();
Products[] productsArray = mapper.readValue(fromUtf8Bytes,
Products[].class);
List<Products> productsList= Arrays.asList(productsArray);
return productsList;
}
然后返回的列表被传递给我的导入函数,但在此之前发生内存不足异常。关于如何处理如此大的文件而不将原始 JSON 分解为几个较小的文件的任何想法?