【发布时间】:2021-05-24 08:41:57
【问题描述】:
我有一个像下面这样的 JSON: 我的目标 POJO 是
[{
"id": "1",
"teams": [{
"name": "barca"
},
{
"name": "real"
}
]
},
{
"id": "2"
},
{
"id": "3",
"teams": [{
"name": "atletico"
},
{
"name": "cz"
}
]
}
]
我的目标 POJO 是
class Team
int id;
String name;
意思是,我想为每个“团队”创建一个新对象。喜欢;
new Team(1,barca)
new Team(1,real)
new Team(2,null)
new Team(3,atletico)
...
我相信我使用如下自定义反序列化器做到了这一点:
JsonNode rootArray = jsonParser.readValueAsTree();
for (JsonNode root : rootArray) {
String id = root.get("id").toString();
JsonNode teamsNodeArray = root.get("teams");
if (teamsNodeArray != null) {
for (JsonNode teamNode: teamsNodeArray ) {
String nameString = teamNode.get("name").toString();
teamList.add(new Team(id, nameString));
}
} else {
teamList.add(new Team(id, null));
}
}
考虑到我获得了 750k 条记录...拥有 2 个 fors 是我相信使代码速度比应有的速度慢。大约需要 7 分钟。
我的问题是,如果有更好的方法可以请您赐教吗?
PS:我已经为此检查了许多 stackoverflow 线程,但目前找不到任何适合的内容。
提前谢谢你。
【问题讨论】: