使用 Jq 将一个对象的 属性 插入另一个 属性
Use Jq to insert property of an object in another property
我有一个 json 文件,如下所示:
[
{
"account_id": 123,
"instances": [
{"id": 1},
{"id": 2}
]
},
{
"account_id": 456,
"instances": [
{"id": 1}
]
}
]
我想将实例拼合到一个列表中,然后将 account_id 插入到每个实例中。这是我想要的结果。
[
{"id": 1, "account_id": 123},
{"id": 2, "account_id": 123},
{"id": 1, "account_id": 456}
]
这是我在等待答案时想出的替代解决方案。
jq '.|map(.instances[]+{"account_id": .account_id})' file.json
jq '[.[] | .id = .instances[0].id | del(.instances)]' file.json
如果有更多实例,只需遍历所有实例以将 account_id 分配给每个实例:
jq '[.[] | .id = .instances[].id | del(.instances)]' file.json
~~
我有一个 json 文件,如下所示:
[
{
"account_id": 123,
"instances": [
{"id": 1},
{"id": 2}
]
},
{
"account_id": 456,
"instances": [
{"id": 1}
]
}
]
我想将实例拼合到一个列表中,然后将 account_id 插入到每个实例中。这是我想要的结果。
[
{"id": 1, "account_id": 123},
{"id": 2, "account_id": 123},
{"id": 1, "account_id": 456}
]
这是我在等待答案时想出的替代解决方案。
jq '.|map(.instances[]+{"account_id": .account_id})' file.json
jq '[.[] | .id = .instances[0].id | del(.instances)]' file.json
如果有更多实例,只需遍历所有实例以将 account_id 分配给每个实例:
jq '[.[] | .id = .instances[].id | del(.instances)]' file.json
~~