数据库里有这样的一些数据
_id | p_id | parm_key | parm_value | parm_type |
---|---|---|---|---|
0 | -1 | template | object | |
10 | 0 | name | template-name | string |
20 | 0 | inputs | object | |
201 | 20 | parameters | [object] | |
2011 | 201 | name | this-is-name-1 | string |
2012 | 201 | value | this-is-value-1 | string |
2013 | 201 | name | this-is-name-2 | string |
2014 | 201 | value | this-is-value-2 | string |
其中:
要根据上述的数据结构,生成以下格式的 json 对象或者 json 字符串:
{
"template": {
"name": "template-name",
"inputs": {
"parameters": [
{
"name": "this-is-name-1",
"value": "this-is-value-1"
},
{
"name": "this-is-name-2",
"value": "this-is-value-2"
}
]
}
}
}
用什么样的方法能够做到这种转换呢?
1
66beta 2021-03-25 11:40:11 +08:00
递归,遍历树
|
2
anankun OP 递归是可以,想一想实现起来有点忒麻烦
|
3
0x666666 2021-03-25 14:24:32 +08:00
递归
|
4
no1xsyzy 2021-03-25 14:37:05 +08:00
如果 (parm_key, parm_type) 对的种类固定且不多的话可以用 GraphQL,只要写出相当于 (parm_key, parm_type) 那么多个 key 就行了。
不然你还是老老实实游走树吧。 |
5
Xbluer 2021-03-25 15:36:13 +08:00
Entity 中多加属性 parent 和 childList.
List<Entity> 转换成一个 Map<_id, Entity>。遍历 list,使用 map 把 entity 中的 parent 赋值,并把当前 entity 添加岛 parent.childList 中。如果 map 中查询结果是 null,那就是树的 root 。 |