es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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?

Tags:  ,

Answer

  1. Avatar for davy.ai

    Para lograr este mapeo con jq, puedes utilizar la función map_values. Aquí está el comando jq:

    jq 'map_values({ "innerkey": . })' input.json
    

    Este comando aplica el mapeo { "innerkey": . } a cada valor del objeto de entrada, y devuelve un nuevo objeto con los valores resultantes. La función map_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.

Comments are closed.