给定以下 JSON 文件:
{
"quadrants": [
"Languages + Frameworks",
"Tools",
"Platforms",
"Techniques"
],
"entries": [
{
"quadrant": "Languages + Frameworks"
},
{
"quadrant": "Platforms"
},
{
"quadrant": "Languages + Frameworks"
}
]
}
如何将每个条目的象限字段替换为象限中对应值的索引?
预期输出:
{
"quadrants": [
"Languages + Frameworks",
"Tools",
"Platforms",
"Techniques"
],
"entries": [
{
"quadrant": 0
},
{
"quadrant": 2
},
{
"quadrant": 0
}
]
}
我尝试了以下 jq 脚本,但每个象限都得到
null
。
jq '
.entries |= map(
.quadrant = (.quadrant as $q | (.quadrants | index($q)))
)
' "$1"
您正在寻找这样的东西:
.quadrants as $qs | .entries[].quadrant |= . as $q | $qs | index($q)'
假设您的
JSON data
存储在 jsoninput.json fil
中,因此在这种情况下,我们像给定的那样运行 jq 命令。
jq '.entries |= map(.quadrant = (.quadrants | index(.quadrant)))' jsoninput.json
上面命令中的
jsoninput.json
可以替换为你的文件名。