【发布时间】:2026-01-14 16:50:01
【问题描述】:
我有两个具有相同键的对象:
{"key": "first_name", "value": "Jane"}
{"key": "last_name", "value": "Doe"}
我想要
{"first_name": "Jane", "last_name": "Doe"}
如何在jq 中执行此操作?
【问题讨论】:
我有两个具有相同键的对象:
{"key": "first_name", "value": "Jane"}
{"key": "last_name", "value": "Doe"}
我想要
{"first_name": "Jane", "last_name": "Doe"}
如何在jq 中执行此操作?
【问题讨论】:
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 - 选项,将整个输入流读入一个大数组并只运行一次过滤器【讨论】:
下面应该适合你
jq 'map({(.key): .value}) | add' test.json
输出
{
"first_name": "Jane",
"last_name": "Doe"
}
【讨论】: