使用jq重塑json文件
我需要转换以下内容 输入:使用jq重塑json文件,json,jq,Json,Jq,我需要转换以下内容 输入: { "id-952": [ "serial-8915" ], "id-546": [ "serial-5747", "serial-8735" ] 期望输出: { "serial-8915": ["id-952"], "serial-5747": ["id-546"], serial-8735": ["id-546"] } 我在jqplay上的尝试: keys, .[]
{
"id-952": [
"serial-8915"
],
"id-546": [
"serial-5747",
"serial-8735"
]
期望输出:
{
"serial-8915": ["id-952"],
"serial-5747": ["id-546"],
serial-8735": ["id-546"]
}
我在jqplay上的尝试:
keys, .[]
输出:
[
"id-546",
"id-952"
]
[
"serial-8915"
]
[
"serial-5747",
"serial-8735"
]
哪个jq命令是合适的?最简单的健壮(相对于jq版本)解决方案可能是:
to_entries | map( {(.key): .value} ) | add
这里的主要微妙之处是
.key
周围的一对括号。这里是另一个使用添加的解决方案
. as $d | [ keys[] | {($d[.][]): [.]} ] | add
或同等地
. as $d | keys | map( {($d[.][]):[.]} ) | add
尝试使用此来|映射条目(.key as$keys |.value | map({“key”:.,“value”:[$keys]}))|从|条目展平(2)|