Herramienta de Reparación JSON
Corrige y recupera automáticamente JSON dañado o malformado: de forma segura, rápida y gratuita.
Esta herramienta repara JSON roto o inválido mediante corrección automática de errores. Está diseñada para solucionar los problemas de sintaxis más comunes en datos exportados, registros o archivos editados manualmente, como comillas faltantes, comas sueltas o corchetes desajustados, y genera JSON válido y analizable como resultado.
Repara tu JSON a continuación
Cómo Funciona la Reparación de JSON
La herramienta analiza tu entrada en busca de problemas típicos de sintaxis JSON y aplica correcciones específicas, generando JSON válido siempre que sea posible.
- Analiza la entrada y detecta errores comunes de sintaxis, incluyendo caracteres ilegales, corchetes mal ubicados y comillas incorrectas en cadenas de texto.
- Aplica correcciones para errores comunes — como agregar comillas faltantes, eliminar comas al final o corregir corchetes.
- Genera el JSON reparado. En la mayoría de los casos, el resultado está listo para analizarse o usarse de inmediato.
- Si la estructura no puede repararse automáticamente, se mostrará un error claro para que puedas ajustar tu entrada.
Errores Comunes en JSON y Cómo Solucionarlos
Aquí están los errores típicos de JSON que esta herramienta puede reparar, con ejemplos para cada uno:
Claves sin comillas
Las claves deben estar entre comillas dobles.
{ nombre: "Bob" }
{ "name": "Bob" }
Corrección: Añade comillas dobles alrededor de cualquier clave de objeto sin comillas.
Comillas Simples Utilizadas
JSON solo acepta comillas dobles para las cadenas.
{ 'rol': 'administrador' }
{ "role": "administrador" }
Corrección: Reemplaza las comillas simples por comillas dobles en todas las cadenas.
Comas al final
No se permite una coma después del último elemento.
{ "a": 1, "b": 2, }
{ "a": 1, "b": 2 }
Solución: Elimina todas las comas finales.
Corchetes Desajustados o Sin Cerrar
Todos los corchetes y llaves deben cerrarse correctamente.
[1, 2, 3
[1, 2, 3]
Corrección: Se añaden paréntesis o llaves de cierre que faltaban.
Comas Faltantes o Extras
Los elementos de arrays y objetos deben separarse con una sola coma.
{ "a": 1 "b": 2 }
{ "a": 1, "b": 2 }
Solución: Inserta comas faltantes o elimina duplicados.
Líneas de comentario presentes
El estándar JSON no permite comentarios (como // o /* ... */).
{ "id": 1, // ID de usuario "active": true }
{ "id": 1, "activo": true }
Solución: Elimina las líneas de comentarios del contenido de entrada.
Formatos de Número Inválidos
Solo números decimales simples son válidos (sin NaN, infinito ni hexadecimal).
{ "val": NaN }
{ "val": null }
Solución: Reemplaza los números inválidos con null.
Caracteres de Control Sin Escape
Los caracteres como saltos de línea en cadenas deben estar escapados.
{ "msg": "Línea1 Línea2" }
{ "msg": "Línea1\nLínea2" }
Corrección: Escapa correctamente los caracteres de control.
Claves duplicadas en el objeto
Las claves duplicadas en el mismo objeto causan ambigüedad.
{ "name": "A", "name": "B" }
{ "name": "B" }
Corrección: Mantiene solo el último valor para cualquier clave duplicada.
Arrays malformados
Los arrays deben tener corchetes y comas entre los elementos.
[ 1 2 3 ]
[ 1, 2, 3 ]
Corrección: Añade comas faltantes entre los elementos del arreglo.
Entrada vacía o solo espacios en blanco
El JSON no puede estar vacío.
nulo
Solución: Devuelve nulo para entradas vacías.
Ejemplo: De JSON roto a una reparación válida
{ usuario: 'alice', id: 42, roles: [admin, 'editor',] // coma extra activo: true }Salida JSON Reparada
{ "usuario": "alice", "id": 42, "roles": [ "administrador", "editor" ], "activo": true }
Cómo usar esta herramienta de reparación JSON
- Pega o escribe tu JSON dañado en el editor a continuación.
- Haz clic en 'Reparar' para detectar y corregir automáticamente errores comunes de sintaxis.
- Revisa el resultado reparado y copia tu JSON corregido.
Siempre verifica el JSON reparado antes de usarlo para datos críticos; puede ser necesario hacer ajustes manuales para entradas complejas o muy dañadas.
Ejemplos de Código para Reparar JSON
Descubre cómo reparar JSON en varios lenguajes de programación.
const { jsonrepair } = require('jsonrepair');
const broken = '{ name: "Bob", age: 42, }';
const fixed = jsonrepair(broken);
console.log(fixed); // Now valid JSON!
let broken = "{ name: 'Bob', age: 42 }";
broken = broken.replace(/(['"])?:([\s]*)([^\s,\{\}\[\]":']+)/g, '"$1$3":');
try {
let obj = JSON.parse(broken);
console.log(obj);
} catch (e) {
console.error('Still broken:', e.message);
}
import dirtyjson
broken = "{ name: 'Bob', age: 42 }"
obj = dirtyjson.loads(broken)
print(obj)
import demjson3
broken = "{ name: 'Bob', age: 42 }"
obj = demjson3.decode(broken)
print(obj)
package main
import (
"fmt"
"github.com/robertkrimen/otto"
)
func main() {
vm := otto.New()
broken := "{ name: 'Bob', age: 42 }"
value, err := vm.Run("(" + broken + ")")
if err != nil {
fmt.Println("Cannot repair:", err)
} else {
obj, _ := value.Export()
fmt.Println(obj)
}
}
import org.json.JSONObject;
public class Main {
public static void main(String[] args) {
String broken = "{'name': 'Bob', 'age': 42}".replace(''', '"');
JSONObject obj = new JSONObject(broken);
System.out.println(obj);
}
}
using System;
using Newtonsoft.Json;
class Program {
static void Main() {
var broken = "{ name: 'Bob', age: 42 }".Replace("'", "\"");
try {
var obj = JsonConvert.DeserializeObject(broken);
Console.WriteLine(obj);
} catch (Exception ex) {
Console.WriteLine("Broken JSON: " + ex.Message);
}
}
}
<?php
$broken = "{ name: 'Bob', age: 42 }";
$fixed = preg_replace("/'([^"]*)'/", '"$1"', $broken);
$fixed = preg_replace('/([a-zA-Z0-9_]+):/', '"$1":', $fixed);
$obj = json_decode($fixed);
var_dump($obj);
# Using system call to npx jsonrepair
require 'open3'
broken = "{ name: 'Bob', age: 42 }"
fixed, _ = Open3.capture2("echo #{broken.inspect} | npx jsonrepair")
puts fixed
echo "{ name: 'Bob', age: 42 }" | npx jsonrepair
// Rust does not have a json repair crate yet. Pre-process string with regex to fix simple cases, then use serde_json.
import org.json.JSONObject
fun main() {
var broken = "{ name: 'Bob', age: 42 }".replace("'", "\"")
broken = Regex("([a-zA-Z0-9_]+):").replace(broken, ""$1":")
val obj = JSONObject(broken)
println(obj)
}
import { jsonrepair } from 'jsonrepair';
const broken = '{ name: "Bob", age: 42 }';
const fixed = jsonrepair(broken);
console.log(fixed);
var broken = "{ name: 'Bob', age: 42 }";
var fixed = broken.replaceAll("'", '"').replaceAllMapped(
RegExp(r'([a-zA-Z0-9_]+):'),
(m) => '"${m[ 1 ]}":',
);
print(fixed);
broken = "{ name: 'Bob', age: 42 }"
fixed = Regex.replace(~r/'/, broken, """)
fixed = Regex.replace(~r/(\w+):/, fixed, ""\\1":")
IO.puts(fixed)