How to keep one level of object and extract one of its sub-key only?

老子叫甜甜 提交于 2021-02-16 14:58:05

问题


I'm playing a bit with terraform state json output and want to transform it a bit.

Given that input issued from terraform:

{
  "cost": {
    "sensitive": false,
    "value": "123"
  },
  "test_id": {
    "sensitive": false,
    "value": "6610758455459338306"
  }
}

How do i convert it to something usefull for my application like bellow:

{
  "cost": "123",
  "test_id": "6610758455459338306"
}

I tried to play with from_entries, with_entries but i'm a complete noob at it


回答1:


You're looking for map_values. It works just like map, but doesn't convert an object input to an array.

map_values(.value)

Online demo




回答2:


oguz's answer is crisp and to the point, but if you want to do with *_entries functions, you could getaway with

with_entries(.value = .value.value)

jqplay - snippet



来源:https://stackoverflow.com/questions/65883327/how-to-keep-one-level-of-object-and-extract-one-of-its-sub-key-only

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!