json - remove - jq test
Extraiga un campo especĂfico de la salida JSON usando jq (2)
Tengo una salida JSON de la siguiente manera:
{
"example": {
"sub-example": [
{
"name": "123-345",
"tag" : 100
},
{
"name": "234-456",
"tag" : 100
},
{
"name": "4a7-a07a5",
"tag" : 100
}
]
}
}
Quiero extraer los valores de los tres campos de "nombre" y almacenarlo en tres variables.
Intenté cat json_file | jq ''.["example.sub-example.name"]''
cat json_file | jq ''.["example.sub-example.name"]''
para extraer el valor del campo "nombre" pero eso no funciona.
¿Alguien puede decirme cómo lograr esto usando jq (o algún otro método)?
En jq 1.3, puedes usar el filtro:
.example["sub-example"] | .[] | .name
O más compacto:
.example["sub-example"][].name
Por supuesto, estos también funcionan con versiones posteriores de jq.
Si solo desea extraer los campos de name
, el comando que está buscando es jq ''.example."sub-example" | .[] | .name''
jq ''.example."sub-example" | .[] | .name''
jq ''.example."sub-example" | .[] | .name''
. Si desea mantener los nombres en una matriz, jq
expresión jq
completa entre corchetes.