我正在读取大型 Json 文件,我想将这些对象映射到文件中并将它们插入到数据库中json结构{"A": [ { "key1": "value1", "key2": "value2", "B": [ { "id": "34f852c8-fc51-47aa-ba7f-dd659a4bff3f", "C": [ { "c1": "819685-002", } ] } ] }, { "key1": "value1", "key2": "value2", "B": [ { "id": "34f852c8-fc51-47aa-ba7f-dd659a4bff3f", "C": [ { "c1": "819685-002", } ] } ] }]}该文件包括A的多个块所以我需要循环三个嵌套循环For (A){ for (B){ FOR (C) { // CREATE THE AN OBJECT } } } // Then after the loop insert all objects once db.bulk(//List of object created);插入2557条记录需要3分钟的问题?可以做任何增强来增强循环程序吗?
2 回答
人到中年有点甜
TA贡献1895条经验 获得超7个赞
我总是会创建模型来将 json 字符串映射到 POJO,这样我就可以灵活地处理它们。例如,对于您的 json 部分,我会将 POJO 创建为:
class Payload {
private List<Result> A;
// getters and setters
}
class Result {
private String key1;
private String key2;
private List<Result2> B;
// getters and setters
}
现在您可以将您的 json 映射到 pojo 与 Jackson 为:
import com.fasterxml.jackson.databind.ObjectMapper;
// . . .
ObjectMapper mapper = new ObjectMapper();
Payload payload = mapper.readValue(jsonString, Payload.class);
现在您可以将有效负载或部分有效负载发送到 db。
Cats萌萌
TA贡献1805条经验 获得超9个赞
这似乎是一个优化问题。非常类似于这里的这个。基本上,没有真正更有效的方法来优化 3 个嵌套的 for 循环,但是,分析算法结构并重新评估如何分配对象并通过 JSON 本身进行解析将是更好的攻击策略。
话虽如此,正如其他人所评论的那样,有像 Jackson 这样的工具可以为您做到这一点。
添加回答
举报
0/150
提交
取消