Java 保存时对json输入中的项目进行排序
我试图以特定的顺序保存json输入,在本例中,我希望按id排序。我怎样才能做到呢?另外,如果有人能提供一种更干净的方法来完成以下过程,我将不胜感激 DemoConfig-POJO 服务Java 保存时对json输入中的项目进行排序,java,spring-boot,jackson,Java,Spring Boot,Jackson,我试图以特定的顺序保存json输入,在本例中,我希望按id排序。我怎样才能做到呢?另外,如果有人能提供一种更干净的方法来完成以下过程,我将不胜感激 DemoConfig-POJO 服务 DemoConfig demoConfig; JsonNode demoJson = demoConfig.getJson(); ObjectMapper mapper = new ObjectMapper(); for (JsonNode nodes : demoJson) {
DemoConfig demoConfig;
JsonNode demoJson = demoConfig.getJson();
ObjectMapper mapper = new ObjectMapper();
for (JsonNode nodes : demoJson) {
JsonNode id = nodes.path("id");
JsonNode type = nodes.path("type");
JsonNode order = nodes.path("order");
JsonNode name = nodes.path("name");
JsonNode children = nodes.path("children");
ObjectNode node = mapper.createObjectNode();
node.set("id", id);
node.set("type", type);
node.set("order", order);
node.set("name", name);
node.set("children", children);
DemoConfig newDemoConfig = new DemoConfig();
newDemoConfig.setDataJson(node);
newDemoConfig.setId(id.asInt());
newDemoConfig.setType(type.asInt());
newDemoConfig.setOrder(type.asInt());
newDemoConfig.setName(name.asText());
demoRepository.save(newDemoConfig);
if(children.isArray()) {
for(JsonNode firstLevelChildren:children) {
JsonNode id1 = nodes.path("id");
JsonNode type1 = nodes.path("type");
JsonNode order1 = nodes.path("order");
JsonNode name1 = nodes.path("name");
JsonNode children1 = nodes.path("children");
ObjectNode node1 = mapper.createObjectNode();
node.set("id", id1);
node.set("type", type1);
node.set("order", order1);
node.set("name", name1);
node.set("children", children1);
DemoConfig newDemoConfig1 = new DemoConfig();
newDemoConfig1.setDataJson(node1);
newDemoConfig1.setId(id.asInt());
newDemoConfig1.setType(type.asInt());
newDemoConfig1.setOrder(type.asInt());
newDemoConfig1.setName(name.asText());
demoRepository.save(newDemoConfig1);
}
}
输入json
{
"dataJson": [
{
"id": 1,
"type": 546,
"order": 1,
"name": "demo1",
"children": []
},
{
"id": 2,
"type": 842,
"order": 2,
"name": "demo2",
"children": []
},
{
"id": 3,
"type": 985,
"order": 3,
"name": "demo4",
"children": [
{
"id": 5,
"type": 354,
"order": 4,
"name": "demo3",
"children": []
}
]
},
{
"id": 4,
"type": 810,
"order": 5,
"name": "demo5",
"children": []
}
]
}
在数据库中,它被保存为以下内容
pk_id id type order name
1000 1 546 1 demo1
1001 2 842 2 demo2
1002 3 985 3 demo3
1003 5 354 4 demo5
1004 4 810 5 demo4
有什么我可以根据id保存的吗
pk_id id type order name
1000 1 546 1 demo1
1001 2 842 2 demo2
1002 3 985 3 demo3
1003 4 810 5 demo4
1004 5 354 4 demo5
是否要按Id排序?为什么不使用自定义比较器对列表中的
节点进行排序,该比较器将比较pk\u Id
?您可以在序列化之前对其进行排序。@Sambit是的,按排序Id@ShashankKadne你能举个例子吗。因此,我必须从JsonNode转换到List,然后再转换回JsonNode?您想按Id排序吗?为什么不使用自定义比较器对列表中的节点进行排序,该比较器将比较pk_Id
?您可以在序列化之前对其进行排序。@Sambit是的,按排序Id@ShashankKadne你能举个例子吗。所以,我必须从JsonNode转换到List,然后再转换回JsonNode?