我有两个具有相同键的对象:
{"key": "first_name", "value": "Jane"}
{"key": "last_name", "value": "Doe"}
我想要
{"first_name": "Jane", "last_name": "Doe"}
我如何在jq
中执行此操作?
答案 0 :(得分:2)
jq 解决方案(使用 reduce
功能):
jq -s 'reduce .[] as $o ({}; .[$o.key]=$o.value)' yourfile
使用 from_entries
功能更简单:
jq -s 'from_entries' yourfile
输出(两种方法):
{
"first_name": "Jane",
"last_name": "Doe"
}
--slurp/-s
- 选项,将整个输入流读入大型数组并仅运行一次过滤器答案 1 :(得分:0)
下面应该适合你
jq 'map({(.key): .value}) | add' test.json
输出
{
"first_name": "Jane",
"last_name": "Doe"
}