Json 使用相同的关键点组合两个对象
我有两个具有相同关键点的对象:Json 使用相同的关键点组合两个对象,json,object,merge,jq,Json,Object,Merge,Jq,我有两个具有相同关键点的对象: {"key": "first_name", "value": "Jane"} {"key": "last_name", "value": "Doe"} 我想要 {"first_name": "Jane", "last_name": "Doe"} 在jq中如何实现这一点?下面的内容应该适合您 jq 'map({(.key): .value}) | add' test.json 输出 { "first_name": "Jane", "last_name"
{"key": "first_name", "value": "Jane"}
{"key": "last_name", "value": "Doe"}
我想要
{"first_name": "Jane", "last_name": "Doe"}
在
jq
中如何实现这一点?下面的内容应该适合您
jq 'map({(.key): .value}) | add' test.json
输出
{
"first_name": "Jane",
"last_name": "Doe"
}
PS:答案取自jq解决方案(使用reduce
函数):
或者更简单地使用以下功能:
jq -s 'reduce .[] as $o ({}; .[$o.key]=$o.value)' yourfile
jq -s 'from_entries' yourfile
输出(对于两种方法):
-选项,将整个输入流读取到一个大数组中,然后只运行一次过滤器--slurp/-s
{
"first_name": "Jane",
"last_name": "Doe"
}