2017-03-13 71 views
0

我需要改變以下使用JQ重塑一個JSON文件

輸入:

{ 
     "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命令是合適的?

+0

試試這個'to_entries |圖(.KEY爲$鍵| .value的|圖({ 「鑰匙」 : 「值」:[$鍵]}))|變平(2)| from_entries' – gvmani

回答

0

最簡單的強大的(相對於JQ版本)的解決方案可能會:

to_entries | map({(.key): .value}) | add 

主要微妙這裏是對周圍.key括號。

0

下面是使用另一種解決方案添加

. as $d | [ keys[] | {($d[.][]): [.]} ] | add 

或等價

. as $d | keys | map({($d[.][]):[.]}) | add