JSON explicado: cómo validarlo, formatearlo y corregir errores
Aprende las reglas de un JSON válido, cómo darle formato, identificar errores de sintaxis frecuentes y validar su estructura de forma segura.
JSON aparece en APIs, archivos de configuración, respuestas de servidores y almacenamiento de datos. Su sintaxis es pequeña, pero también estricta: una comilla incorrecta, una coma final o un valor no admitido basta para que el documento deje de ser válido.
1. ¿Qué es JSON?
JSON, abreviatura de JavaScript Object Notation, es un formato de texto para intercambiar datos estructurados. Aunque su sintaxis nació a partir de JavaScript, es independiente del lenguaje y puede utilizarse desde C#, Java, Python, PHP, Go y prácticamente cualquier plataforma moderna.
Puede representar objetos, arreglos, cadenas, números, booleanos y el valor null. Un objeto agrupa pares de nombre y valor; un arreglo conserva una secuencia ordenada de valores.
{
"name": "Tervix",
"active": true,
"tools": ["JSON formatter", "JSON validator"],
"settings": {
"language": "es",
"indentation": 2
},
"lastError": null
}2. Reglas de un JSON válido
- Las claves de los objetos deben estar entre comillas dobles:
"name". - Las cadenas también usan comillas dobles, no comillas simples.
- Cada propiedad se separa con una coma, pero no se permite una coma después del último elemento.
- Entre una clave y su valor debe existir dos puntos:
"active": true. - Los valores admitidos son objeto, arreglo, cadena, número,
true,falseynull. - JSON no admite comentarios,
undefined,NaNniInfinity. - Los saltos de línea dentro de una cadena deben escaparse como
\\n.
Los espacios, tabulaciones y saltos de línea fuera de las cadenas no cambian el significado. Por eso el mismo documento puede presentarse con sangría para leerlo o en una sola línea para reducir su tamaño.
3. Cómo validar la sintaxis
En JavaScript, JSON.parse() intenta convertir el texto en un valor. Si encuentra sintaxis inválida lanza unSyntaxError, por lo que debe utilizarse dentro de un bloque try...catch cuando el texto proviene de un usuario, archivo o servicio externo.
function validateJson(text) {
try {
const value = JSON.parse(text);
return { valid: true, value, error: null };
} catch (error) {
return {
valid: false,
value: null,
error: error instanceof Error ? error.message : "Invalid JSON",
};
}
}Un resultado sin excepción confirma que el texto cumple la gramática de JSON. No confirma que tenga campos obligatorios, tipos concretos o valores permitidos: esa comprobación pertenece a la validación estructural.
Los mensajes de error pueden incluir una posición, línea o columna, pero su redacción varía entre navegadores y entornos. Úsalos como punto de partida y revisa también los caracteres inmediatamente anteriores.
4. Cómo formatear y minificar JSON
Formatear significa añadir sangría y saltos de línea para que la jerarquía sea visible. Minificar elimina ese espacio innecesario para producir una representación compacta. En ambos casos conviene analizar primero el texto, porque un formateador no puede reorganizar de forma segura un documento inválido.
const data = JSON.parse(input);
// Formatted with two spaces
const formatted = JSON.stringify(data, null, 2);
// Minified
const minified = JSON.stringify(data);El tercer argumento de JSON.stringify() controla la sangría. Dos espacios suelen ofrecer un buen equilibrio entre legibilidad y ancho; cuatro espacios son más amplios. Sin ese argumento, la salida queda minificada.
undefined, funciones o símbolos pueden omitirse, y una referencia circular provoca un error. Formatear texto JSON válido no presenta ese problema porque el texto ya contiene únicamente tipos admitidos.5. Errores frecuentes y cómo corregirlos
Claves o cadenas con comillas simples
Incorrecto: {'name': 'Ana'}. Corrige ambas cadenas utilizando comillas dobles:{"name": "Ana"}.
Claves sin comillas
Un objeto de JavaScript puede escribirse como{ name: 'Ana' }, pero JSON exige{ "name": "Ana" }.
Coma al final
Elimina la coma situada antes de } o]. JSON no permite comas finales en objetos ni arreglos.
Comentarios
// comentario y /* comentario */ no forman parte de JSON. Guarda la explicación en una propiedad normal o utiliza un formato de configuración que admita comentarios.
Valores no admitidos
Sustituye undefined por null cuando represente ausencia de valor. Decide una representación explícita para NaN e Infinity, porque JSON no los incluye.
Números inválidos
Evita ceros iniciales como 01, un punto decimal sin dígitos como 1. y formatos propios de otros lenguajes.
Caracteres sin escapar
Dentro de una cadena, escapa comillas como\\", barras invertidas como \\\\ y saltos de línea como \\n.
Claves duplicadas
Algunos analizadores conservan el último valor y otros pueden comportarse de otra manera. Aunque un parser acepte el texto, utiliza nombres únicos para evitar pérdida de datos y mejorar la interoperabilidad.
6. Validar la estructura con JSON Schema
La validación sintáctica responde: “¿esto es JSON?”. JSON Schema responde preguntas adicionales: “¿es un objeto?”, “¿incluye estas propiedades?”, “¿este campo es booleano?” o “¿se permiten propiedades adicionales?”.
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"required": ["name", "active"],
"properties": {
"name": { "type": "string", "minLength": 1 },
"active": { "type": "boolean" }
},
"additionalProperties": false
}Este esquema exige un objeto con las propiedadesname y active, comprueba sus tipos y rechaza campos no definidos. Para aplicarlo necesitas un validador compatible con la versión de JSON Schema declarada.
7. Método práctico para corregir errores
- Conserva una copia del texto original antes de modificarlo.
- Ejecuta un validador y localiza la primera posición reportada.
- Revisa la línea indicada y también la anterior; una comilla o coma faltante puede desplazar el error.
- Corrige un problema a la vez y vuelve a validar.
- Cuando la sintaxis sea válida, aplica formato con sangría.
- Comprueba visualmente objetos, arreglos y tipos.
- Si existe un contrato de datos, valida también contra su JSON Schema.
- Ejecuta las pruebas de la aplicación antes de reemplazar el archivo o respuesta original.
En documentos grandes, reducir el caso ayuda: elimina temporalmente bloques completos hasta aislar la sección que falla. No uses reemplazos globales de comillas o comas sin revisar el resultado, porque pueden alterar cadenas válidas.
8. Lista de comprobación rápida
- Todas las claves y cadenas utilizan comillas dobles.
- No existen comas después del último elemento.
- Cada clave está seguida por dos puntos.
- Los objetos y arreglos cierran correctamente.
- No hay comentarios, undefined, NaN ni Infinity.
- Las comillas, barras y líneas dentro de cadenas están escapadas.
- Las claves de cada objeto son únicas.
- JSON.parse() procesa el documento sin lanzar una excepción.
- La estructura cumple el JSON Schema de la aplicación, si existe.
- El documento se formatea únicamente después de ser válido.
Valida y formatea JSON dentro de tu navegador
Pega tu documento, detecta errores de sintaxis, aplica sangría o minifícalo. El contenido se procesa localmente y no se envía a nuestros servidores.
Abrir formateador JSONFuentes y revisión
Este artículo fue revisado el 20 de julio de 2026 utilizando el estándar de JSON, la documentación de MDN y la documentación oficial de JSON Schema.
- RFC 8259 — The JavaScript Object Notation (JSON) Data Interchange Format
- ECMA-404 — The JSON Data Interchange Syntax
- MDN — JSON.parse()
- MDN — JSON.stringify()
- JSON Schema — Official documentation
Contenido educativo general. La compatibilidad y los mensajes de error pueden variar entre analizadores, lenguajes y navegadores.