使用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)|