java - 保存时对 json 输入中的项目进行排序
问题描述
我正在尝试以特定顺序保存 json 输入,在这种情况下,我想按id排序。我怎样才能实现它?另外,如果有人可以提供一种更清洁的方法来执行以下过程,我将不胜感激。
DemoConfig - POJO
服务
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": []
}
]
}
它在 db 中保存如下
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
解决方案
推荐阅读
- regex - 正则表达式在某些情况下替换前导 4 或 3 个零
- r - 通过在 R 中取平均值进行时间序列分析 - ggplot2
- swift - 为具有更高高度的 uitableviewcell 中的视图提供底部约束
- shopify - Shopify graphql 按句柄获取文章?
- dax - dax 期间的第一个日期
- c# - 实体框架 6 实体建模
- eclipse - 如何在 Ionic 版本 1 中更改应用名称
- ms-access - 来自同一字段中不同记录的 Dsum 函数 (sProg_index)
- sapui5 - 灵活的列布局,列跨越功能
- ios - dequeueReusableCellWithIdentifier 提供了哪些性能优势?