Inicio > Procesamiento y búsqueda de texto > jq

jq: Procesamiento de datos JSON

jq es una potente herramienta para procesar y transformar eficientemente datos JSON desde la línea de comandos. Se utiliza para filtrar, segmentar, mapear y transformar datos JSON, lo que permite extraer fácilmente la información deseada incluso de estructuras JSON complejas. A menudo se usa con otros comandos a través de tuberías (|).

Descripción general

jq recibe datos JSON como entrada y los procesa y emite de varias maneras. Puede realizar desde extracciones de valores simples hasta manipulaciones complejas de arrays/objetos, siendo una herramienta esencial para manejar JSON en entornos de scripting.

Características clave

  • Parseo y formateo de datos JSON
  • Extracción y filtrado de campos específicos
  • Manipulación de arrays y objetos
  • Transformación y reestructuración de datos

Opciones principales

Formato de entrada/salida

Filtrado/Transformación

Comando generado:

Combina los comandos.

Descripción:

`jq` Ejecutando el comando.

Combina las opciones anteriores para ejecutar virtualmente los comandos junto con la IA.

Ejemplos de uso

Formateo JSON básico

echo '{"name": "Alice", "age": 30}' | jq .

Imprime el JSON de entrada en un formato fácil de leer.

Extracción de campo específico

echo '{"name": "Bob", "age": 25}' | jq '.name'

Extrae el valor del campo 'name' de un objeto JSON.

Extracción de campo de elementos de array

echo '[{"name": "Alice"}, {"name": "Bob"}]' | jq '.[].name'

Extrae el campo 'name' de cada objeto dentro de un array JSON.

Salida de cadena Raw

echo '{"city": "Seoul"}' | jq -r '.city'

Imprime el valor de cadena extraído sin comillas.

Seleccionar varios campos y crear nuevo objeto

echo '{"name": "Charlie", "age": 40, "email": "charlie@example.com"}' | jq '{name: .name, age: .age}'

Crea un nuevo objeto que solo incluye los campos 'name' y 'age' del objeto original.

Filtrado condicional

echo '[{"name": "Alice", "age": 30}, {"name": "Bob", "age": 25}]' | jq '.[] | select(.age >= 30)'

Filtra solo los usuarios cuya edad es 30 o más.

Transformación de elementos de array (map)

echo '[{"name": "Alice"}, {"name": "Bob"}]' | jq 'map(.name | ascii_upcase)'

Convierte el nombre de cada usuario a mayúsculas.


Comandos de la misma categoría