json - 用 jq 展平 JSON 结构,不重复
问题描述
我从这个结构开始:
[{
"experiment": "ex1",
"models": [{
"name": "model1",
"reference": 0.1,
"code": [{
"name": "foo",
"version": "a",
"value": 0.2
},{
"name": "foo",
"version": "b",
"value": 0.2
},{
"name": "bar",
"version": "a",
"value": 0.15
}]
},{
"name": "model2",
"reference": 0.12,
"code": [{
"name": "foo",
"version": "a",
"value": 0.09
},{
"name": "baz",
"version": "a",
"value": 0.15
}]
}]
}]
我想要这个结果:
{
"model": "model1",
"code": "foo",
"version": "a"
}
{
"model": "model1",
"code": "foo",
"version": "b"
}
{
"model": "model1",
"code": "bar",
"version": "a"
}
{
"model": "model2",
"code": "foo",
"version": "a"
}
{
"model": "model2",
"code": "baz",
"version": "a"
}
所以我写了以下查询。
.[] | { "model": .name, "code": .code[].name, "version": .code[].version }
问题在于,对于.code[]
输出结构中的每次使用,结果都会相乘,从而导致许多重复。我怎样才能避免这种情况,只得到想要的结果?
解决方案
推荐阅读
- jquery - 如何从“查看页面源”检查是否在 wordpress 中添加了 jquery?
- html - 无法更改 FontAwsome 图标颜色
- linux - 如何运行启动脚本文件但隐藏终端的 .desktop 文件?
- postgresql - 如何获取字符串 postgres
- firebase - Microsoft 用户未存储在 Firebase 中
- flutter - 一起运行时 Flutter 小部件测试未通过
- firefox - 移动 Firefox 号码上的自动(电话)链接
- amazon-web-services - 如何为任务提供不同环境变量 ECS Terraform
- java - 如何从 CSV 中获取一个值,将其递增并使用 java 将其保存回来
- git - “git update-index --skip-worktree”突然不再工作