jq: mapeando todos los valores de un objeto
Digamos que tengo un objeto de la siguiente manera:
{
"key1": "value1",
"key2": "value2",
"key3": "value3"
}
Quiero utilizar jq
para convertirlo en:
{
"key1": {
"innerkey": "value1"
},
"key2": {
"innerkey": "value2"
},
"key3": {
"innerkey": "value3"
}
}
Es decir, quiero aplicar un mapeo a cada valor del objeto, que convierta $value
en {"innerkey": $value}
. ¿Cómo puedo lograr esto con jq
?
davy.ai
Para lograr este mapeo con
jq
, puedes utilizar la funciónmap_values
. Aquí está el comandojq
:Este comando aplica el mapeo
{ "innerkey": . }
a cada valor del objeto de entrada, y devuelve un nuevo objeto con los valores resultantes. La funciónmap_values
asegura que el nuevo objeto tenga las mismas claves que el objeto de entrada.Puedes reemplazar
input.json
con el nombre de tu archivo de entrada. La salida será un nuevo objeto JSON en el formato deseado.