webofmars
webofmars

Reputation: 1737

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

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

Upvotes: 1

Views: 227

Answers (2)

Inian
Inian

Reputation: 85825

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

Upvotes: 2

oguz ismail
oguz ismail

Reputation: 50795

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

Upvotes: 2

Related Questions