我有以下代表数据库模式的 JSON 结构:
{
"db": [
{
"tables": [
{
"name": "tblFoo",
"cols": [
{
"name": "created",
"types": [ { "data_type": "timestamp" } ]
},
{
"name": "updated",
"types": [ { "data_type": "timestamp" } ]
},
{
"name": "username",
"types": [ { "data_type": "timestamp" } ]
}
]
},
{
"name": "tblBar",
"cols": [
{
"name": "created",
"types": [ { "data_type": "timestamp" } ]
},
…
等等,你明白了。我需要将其转换为一组连续的 json“命令”,其中每个表及其列都是单独的一行,如下所示:
[
{"type": "TABLE", name:"tblFoo"},
{"type": "COLUMN", name:"created", ofTable: "tblFoo"},
{"type": "COLUMN", name:"updated", ofTable: "tblFoo"},
…
{"type": "TABLE", name:"tblBar"},
{"type": "COLUMN", name:"created", ofTable: "tblBar"},
]
我就是想不通。我.db.tables[] | map(…)
一开始尝试过,但这显然只会创建第一级表格的数组,我无法将列定义添加/注入到同一级。
然后,我尝试使用递归运算符等对列进行迭代.db.tables[].cols[]
,但结果列表仍然只是列的列表,并且我无法将表的列表添加/注入到传出列表中。
你能帮助我走上正确的道路吗?