jq:映射一个对象的所有值

jq: mapping all values of an object

假设我有一个这样的对象:

{
  "key1": "value1",
  "key2": "value2",
  "key3": "value3"
}

我想使用 jq 将其转换为:

{
  "key1": {
    "innerkey": "value1"
  },
  "key2": {
    "innerkey": "value2"
  },
  "key3": {
    "innerkey": "value3"
  }
}

即我想将映射应用于对象中的每个值,将 $value 转换为 {"innerkey": $value}。如何使用 jq 实现此目的?

字面意思是map_values。像这样使用

map_values({innerkey:.})

Demo

您还可以利用迭代对象会迭代其值这一事实。所以你可以更新对象上的那些值。

.[] |= {innerkey:.}

jqplay