Validación de un archivo JSON (herramientas y linters)

¿Qué significa validar un JSON?

Validar un archivo JSON significa comprobar que cumple estrictamente con las reglas de sintaxis. Un JSON válido debe:

  • Estar correctamente formateado.
  • Tener llaves { } y corchetes [ ] balanceados.
  • No contener comas de más.
  • Usar comillas dobles en claves y strings.
  • Tener un único objeto o array en la raíz.

Si el archivo contiene cualquier error de sintaxis, deja de ser válido y las aplicaciones que intenten leerlo generarán un error de parsing.

Ejemplo de JSON inválido

{
  "nombre": "Ana",
  "edad": 28,
  "activo": True,   //  Error: True debe ser true y no se permiten comentarios
}

Errores detectados:

  • "True" con mayúscula — JSON solo acepta true.
  • Coma final después de true.
  • Comentario // — JSON no lo permite.

Herramientas para validar JSON

1. Validadores en línea

Son la forma más rápida de comprobar si un JSON está bien escrito. Algunos de los más usados:

📌 Funcionamiento:

  • Pegás tu JSON en el cuadro de texto.
  • La herramienta te dice si es válido o te marca los errores.

2. Editores de código (con linters)

Hoy casi todos los editores tienen soporte nativo para JSON.

  • Visual Studio Code (VS Code) — Resalta errores de sintaxis en tiempo real y permite instalar extensiones como Prettier para formateo automático.
  • Sublime Text — Con plugins que validan y formatean JSON.
  • JetBrains (PyCharm, WebStorm, IntelliJ) — Validación y autocompletado para JSON y JSON Schema.

3. Consola y herramientas de línea de comandos

En Linux/macOS con jq:

jq es un procesador de JSON muy popular.

📌 Ejemplo:

jq . archivo.json
  • Si el archivo es válido — muestra el JSON formateado.
  • Si es inválido — indica en qué línea está el error.

En Python con el módulo json:

import json

with open("archivo.json", "r", encoding="utf-8") as f:
    try:
        data = json.load(f)
        print("El JSON es válido")
    except json.JSONDecodeError as e:
        print("Error en el JSON:", e)

En Node.js:

node -e "JSON.parse(require('fs').readFileSync('archivo.json'))"
  • Si el JSON es válido, no muestra nada.
  • Si es inválido, lanza un error.

4. Validación con JSON Schema

Más allá de la sintaxis, a veces necesitamos verificar que un JSON siga un formato esperado. Para eso se usa JSON Schema, un estándar que define reglas sobre:

  • Tipos de datos esperados.
  • Campos obligatorios.
  • Valores permitidos.

📌 Ejemplo de JSON Schema (estructura de un producto):

{
  "type": "object",
  "properties": {
    "codigo": { "type": "integer" },
    "descripcion": { "type": "string" },
    "precio": { "type": "number" }
  },
  "required": ["codigo", "descripcion"]
}

Este esquema define que:

  • codigo debe ser entero.
  • descripcion debe ser string.
  • precio debe ser número.
  • codigo y descripcion son obligatorios.

Buenas prácticas al validar JSON

  • Siempre usar comillas dobles en claves y strings.
  • Evitar comas finales en arrays u objetos.
  • Usar linters en el editor para detectar errores en tiempo real.
  • Validar con herramientas online o CLI antes de usar en producción.
  • Si es para APIs — definir un JSON Schema para mayor control.

Resumen

  • Validar JSON = comprobar que cumple con la sintaxis estricta.
  • Hay validadores online, linters en editores y herramientas en consola (como jq, Python o Node.js).
  • Para verificar estructura y tipos — usar JSON Schema.
  • Una validación correcta garantiza que el JSON será legible y portable en cualquier lenguaje.