如何使用jq将含teams数组的JSON数据转换为指定平铺格式?
使用jq转换JSON结构:展开teams数组并重组对象
原始JSON结构
{ "data": [ { "id": "000000000014444A", "teams": [ "000000000011AE74" ] }, { "id": "000000000014434B", "teams": [ "000000000011AE74", "00000000001583CE", "000000000010B4D7" ] } ] }
目标JSON结构
[ { "id": "000000000014444A", "team": "000000000011AE74" }, { "id": "000000000014434B", "team": "000000000011AE74" }, { "id": "000000000014434B", "team": "00000000001583CE" }, { "id": "000000000014434B", "team": "000000000010B4D7" } ]
实现的jq命令
执行以下命令即可完成转换:
jq '[.data[] | {id, team: .teams[]}]' input.json
命令解释
.data[]:遍历顶层data数组中的每一个对象{id, team: .teams[]}:对每个对象,保留原id字段,同时遍历该对象的teams数组,将数组中的每个元素作为team字段的值,每个元素都会生成一条独立的对象- 外层的
[]:将所有生成的独立对象收集到一个数组中,匹配目标结构的格式
内容的提问来源于stack exchange,提问作者eft
相关产品推荐
相关产品推荐

