Trabajar con archivos JSON en la línea de comandos de Ubuntu puede resultar confuso para los usuarios nuevos. Visualizar su estructura con herramientas básicas como cat a menudo produce una salida ilegible. Aprender a manejar estos archivos de forma eficiente es una habilidad esencial, ya que JSON es el formato estándar para configuraciones, respuestas de API y datos estructurados.
Este artículo analiza tres enfoques prácticos: el procesador de línea de comandos jq, el uso de scripts en Python y los editores gráficos con soporte JSON. Cada método tiene sus ventajas dependiendo de la tarea, ya sea una consulta rápida, una transformación compleja o una edición visual.
Preparación del entorno
Antes de comenzar, es recomendable actualizar los repositorios del sistema.
sudo apt update
Comprender la estructura básica de JSON es útil. Un archivo JSON válido se compone de objetos (delimitados por {}) que contienen pares clave-valor, y arreglos (delimitados por []) que son colecciones ordenadas de valores. Los valores pueden ser cadenas, números, booleanos, objetos, arreglos o null.
Un JSON formateado (con sangrías y saltos de línea) es legible para humanos, mientras que un JSON comprimido (minified) es óptimo para máquinas pero difícil de interpretar directamente en la terminal.
Procesamiento con jq desde la terminal
jq es una herramienta ligera y potente para extraer y transformar datos JSON directamente en la línea de comandos.
Instalación
Se puede instalar desde los repositorios oficiales de Ubuntu.
sudo apt install jq
Para confirmar la instalación, se puede ejecutar:
jq --version
Esto mostrará la versión instalada, por ejemplo jq-1.6.
Ejemplo práctico de filtrado
Supongamos que tenemos un archivo ejemplo.json con el siguiente contenido:
{
"servidor": {
"host": "192.168.1.100",
"puertos": [22, 80, 443]
},
"metricas": [
{"fecha": "2023-10-26", "carga": 0.75},
{"fecha": "2023-10-27", "carga": 0.82}
]
}
Para extraer solo la lista de puertos usando jq:
jq '.servidor.puertos' ejemplo.json
La salida será un arreglo JSON legible:
[
22,
80,
443
]
Transformación y edición mediante scripts en Python
Cuando se requiere lógica más compleja o procesamiento por lotes, Python ofrece flexibilidad. El módulo incorporado json permite cargar, manipular y guardar datos JSON.
Ejemplo de lectura, modificación y escritura
El siguiente script lee el archivo ejemplo.json, agrega un nuevo puerto a la lista y guarda el resultado en resultado.json.
import json
# Cargar datos desde el archivo de entrada
with open('ejemplo.json', 'r') as archivo_entrada:
contenido = json.load(archivo_entrada)
# Modificar la estructura de datos en memoria
contenido['servidor']['puertos'].append(8080)
# Guardar los datos modificados en un nuevo archivo
with open('resultado.json', 'w') as archivo_salida:
json.dump(contenido, archivo_salida, indent=2)
Este método es ideal para integrar el procesamiento JSON en scripts más amplios de automatización.
Edición visual con editores gráficos
Para una exploración y edición intuitiva, los editores de código con soporte para JSON son muy útiles. Herramientas como Visual Studio Code, Atom o Sublime Text ofrecen resaltado de sintaxis, validación en tiempo real y formateo automático.
En Ubuntu, VS Code se puede instlaar fácilmente. Una vez abierto un archivo .json, el editor mostrará visualmente la estructura, subrayará errores y permitirá colapsar secciones. También se puede invocar un formateador automático (generalmente con Mayús+Alt+F) para reorganizar el archivo con sangrías correctas.
Esta opción es la más accesible para principiantes o para realizar ajustes puntuales en archivos de configuración.