jq-添加父键并将值移到子键

时间:2019-03-13 17:11:27

标签: json transform jq

我想添加一个父键并将每个值移到一个子键中。例如,我要转换以下json:

{                                                    
  "hello": "world",                                
  "foo": "bar"        
}

{
    "parent_key": {
        "hello": {
            "value": "world"
        },
        "foo": {
            "value": "bar"
        }
    }
}

2 个答案:

答案 0 :(得分:0)

{ parent_key: map_values( {value: .}) }

答案 1 :(得分:0)

如果要在此处尝试其他解决方案,请使用 jtc Unix实用程序:

只需两个预定步骤即可: 1.将值移到子项 2.添加一个父键

bash $ <file.json jtc -w[:] -u'[:]<val>v' -T'{ "value": {{val}} }' | jtc -u'<root>v' -T'{ "parent_key": {root} }'
{
   "parent_key": {
      "foo": {
         "value": "bar"
      },
      "hello": {
         "value": "world"
      }
   }
}
bash $