如何使用Jq将对象数组中的数组成员字段拆分展开为独立对象
Jq实现数组字段拆分生成单元素记录方案
你可以使用以下jq命令完成转换:
jq '.[] | {path: .path, type: .types[]}' 输入文件.json
实现逻辑
.[]:拆解最外层的数组,将数组内的每个对象转为独立的处理流{path: .path, type: .types[]}:对每个原始对象,保留path字段的取值,同时通过.types[]展开types数组的每个元素,每个元素都会对应生成一条新的JSON对象,types数组有多少个元素就会生成多少条记录,字段名重命名为type
输出格式调整
如果需要输出紧凑的单行JSON格式,可以添加-c参数:
jq -c '.[] | {path: .path, type: .types[]}' 输入文件.json
运行后即可得到你需要的输出结果:
{"path":"x","type":"a"} {"path":"x","type":"b"} {"path":"y","type":"c"} {"path":"y","type":"d"}
内容的提问来源于stack exchange,提问作者shadowtalker
相关产品推荐
相关产品推荐

