📋
← Volver a guías

Errores comunes de sintaxis JSON y cómo corregirlos con un validador

· Etiquetas: json, json-errors, json-validation, json-syntax, debugging, developer-tips

Errores comunes de JSON

Las reglas estrictas de sintaxis de JSON significan que incluso un solo carácter mal colocado puede romper un documento completo. Comprender los errores JSON más comunes te ayudará a depurar más rápido y a evitar repetir los mismos errores. A continuación se muestran los problemas más frecuentes que encuentran los desarrolladores, con explicaciones claras y correcciones para cada uno.

1. Comas finales

Error: Unexpected token al final de un objeto o array

Las comas finales están permitidas en los objetos y arrays de JavaScript, pero están estrictamente prohibidas en JSON.

JSON no válido:

{
  "name": "Alice",
  "age": 30,
}

Corrección: Elimina la coma después del último elemento.

{
  "name": "Alice",
  "age": 30
}

Arrays con comas finales:

// Invalid
[1, 2, 3,]

// Valid
[1, 2, 3]

2. Comillas faltantes o incorrectas alrededor de las claves

Error: Unexpected identifier o Expected double-quoted property name

JSON requiere que todas las claves de objeto estén entre comillas dobles. Las comillas simples y las claves sin comillas no son válidas, aunque funcionen en JavaScript.

JSON no válido:

{
  name: "Alice",
  'occupation': "Engineer"
}

Corrección: Envuelve siempre las claves entre comillas dobles.

{
  "name": "Alice",
  "occupation": "Engineer"
}

3. Uso de comillas simples para valores de cadena

Error: Unexpected identifier o Unterminated string

Al igual que las claves, los valores de cadena deben usar comillas dobles en JSON. Las comillas simples no son válidas.

JSON no válido:

{ "greeting": 'Hello, world!' }

Corrección: Sustituye las comillas simples por comillas dobles.

{ "greeting": "Hello, world!" }

Consejo: Si tu cadena contiene comillas dobles, escápalas con una barra invertida: "He said, \"Hello\"".

4. Caracteres especiales sin escapar

Error: Unexpected token o Invalid character

Ciertos caracteres deben escaparse en las cadenas JSON: comillas dobles ("), barras invertidas (\) y caracteres de control.

JSON no válido:

{
  "path": "C:\Users\Documents\file.json",
  "quote": "He said "hello""
}

Corrección: Escapa correctamente las barras invertidas y las comillas dobles.

{
  "path": "C:\\Users\\Documents\\file.json",
  "quote": "He said \"hello\""
}

Lista completa de secuencias de escape de JSON

| Secuencia | Representa | |----------|-----------| | \" | Comilla doble | | \\ | Barra invertida | | \/ | Barra inclinada | | \b | Retroceso | | \f | Avance de página | | \n | Nueva línea | | \r | Retorno de carro | | \t | Tabulación | | \uXXXX | Carácter Unicode (por ejemplo, é para la e) |

5. Formatos numéricos no válidos

Error: Unexpected number o Invalid number

JSON tiene reglas específicas sobre cómo se pueden formatear los números:

  • Los ceros iniciales no están permitidos (01 no es válido)
  • Un único cero inicial solo se permite para el número 0
  • Los números no pueden tener puntos finales (10. no es válido)
  • Los formatos hexadecimal, octal y binario no están soportados

JSON no válido:

{
  "invalid1": 01,
  "invalid2": 10.,
  "invalid3": 0xFF,
  "invalid4": 1,000
}

Corrección:

{
  "valid1": 1,
  "valid2": 10.0,
  "valid3": 255,
  "valid4": 1000
}

6. Valores no válidos: undefined, NaN, Infinity

Error: Unexpected token para undefined, NaN, Infinity

JavaScript tiene valores que no tienen equivalente en JSON. Estos causarán errores de análisis:

JSON no válido:

{
  "undefinedVal": undefined,
  "notANumber": NaN,
  "infinity": Infinity
}

Corrección: Sustitúyelos por valores JSON válidos o usa una convención.

{
  "undefinedVal": null,
  "notANumber": null,
  "infinity": 1.7976931348623157e+308
}

7. Comas de más o comas faltantes

Error: Expected comma o Unexpected token

En JSON, las comas deben separar cada par clave/valor y cada elemento de array, pero no deben aparecer después del último elemento.

Coma faltante (no válido):

{
  "name": "Alice"
  "age": 30
}

Corrección: Añade la coma que falta.

{
  "name": "Alice",
  "age": 30
}

8. Problemas con estructuras profundamente anidadas

Error: Maximum call stack size exceeded o tiempo de espera del analizador

Aunque no es un error de sintaxis, el JSON profundamente anidado (10+ niveles) puede causar problemas de rendimiento y hacer que la depuración sea extremadamente difícil.

Estructura problemática:

{
  "level1": {
    "level2": {
      "level3": {
        "level4": {
          "level5": {
            "level6": {
              "value": "too deep"
            }
          }
        }
      }
    }
  }
}

Mejor enfoque: Aplana la estructura o usa referencias.

{
  "users": {
    "alice": { "role": "admin" }
  },
  "permissions": {
    "admin": ["read", "write", "delete"]
  }
}

9. Llaves de apertura o cierre faltantes

Error: Expected ',' or '}' o Unexpected end of JSON input

Las llaves y corchetes no emparejados son una fuente común de errores JSON, especialmente en archivos JSON grandes o escritos a mano.

JSON no válido:

{
  "name": "Alice",
  "items": [1, 2, 3
}

Corrección: Asegúrate de que cada { tiene su } correspondiente, y cada [ tiene su ] correspondiente.

{
  "name": "Alice",
  "items": [1, 2, 3]
}

Consejo profesional: Indenta tu JSON correctamente para emparejar visualmente los corchetes de apertura y cierre. Un formateador JSON puede hacerlo automáticamente.

Cómo depurar errores JSON de forma efectiva

  1. Usa un validador JSON -- Pega tu JSON en un validador JSON gratuito para obtener la línea y la columna exactas del primer error.
  2. Valida de forma incremental -- Para archivos grandes, valida una sección a la vez para aislar el error.
  3. Vigila los artefactos de copiar y pegar -- Los caracteres invisibles, las comillas tipográficas y los espacios de no separación a menudo se cuelan desde los procesadores de texto o las páginas web.
  4. Comprueba la codificación de caracteres -- Asegúrate de que tu archivo esté guardado como UTF-8. Otras codificaciones pueden producir errores invisibles.
  5. Usa un linter -- Herramientas como ESLint con el plugin json detectan errores JSON durante el desarrollo.

Recuerda: los analizadores JSON normalmente informan solo del primer error de sintaxis. Corrige ese, vuelve a validar y repite hasta que el documento pase. Nuestra herramienta Formateador y validador de JSON te ofrece mensajes de error instantáneos y detallados para acelerar este proceso.