Ferramenta de Reparação JSON
Corrija e recupere automaticamente JSON quebrado ou malformado — com segurança, rapidez e gratuitamente.
Esta ferramenta repara JSON corrompido ou inválido utilizando correção automática de erros. Ela corrige os problemas de sintaxe mais comuns encontrados em dados exportados, logs ou arquivos editados manualmente — como aspas faltando, vírgulas extras ou colchetes incompatíveis — e gera um JSON válido e legível como resultado.
Conserte seu JSON abaixo
Como Funciona o Reparador de JSON
A ferramenta analisa sua entrada em busca dos problemas típicos de sintaxe JSON e aplica correções específicas, gerando um JSON válido quando possível.
- Analisa a entrada e identifica erros comuns de sintaxe, incluindo caracteres ilegais, colchetes fora de lugar e aspas incorretas em strings.
- Aplica correções para erros comuns — como adicionar aspas faltantes, remover vírgulas finais ou corrigir colchetes.
- Gera o JSON corrigido. Na maioria dos casos, o resultado está pronto para ser analisado ou utilizado imediatamente.
- Se a estrutura não puder ser reparada automaticamente, um erro claro será exibido para que você possa ajustar sua entrada.
Erros Comuns em JSON e Como Corrigi-los
Aqui estão erros comuns em JSON que esta ferramenta pode corrigir, com exemplos para cada um:
Chaves Sem Aspas
As chaves devem estar entre aspas duplas.
{ nome: "Bob" }
{ "name": "Bob" }
Correção: Adiciona aspas duplas em torno de quaisquer chaves de objeto não entre aspas.
Aspas Simples Utilizadas
JSON aceita apenas aspas duplas para strings.
{ 'role': 'administrador' }
{ "role": "admin" }
Correção: Substitui aspas simples por aspas duplas em todas as strings.
Vírgulas Finais
Não é permitido vírgula após o último item.
{ "a": 1, "b": 2, }
{ "a": 1, "b": 2 }
Correção: Remove quaisquer vírgulas finais.
Colchetes não correspondentes ou não fechados
Todos os colchetes e chaves devem ser fechados corretamente.
[1, 2, 3
[1, 2, 3]
Correção: Adiciona colchetes ou chaves de fechamento ausentes.
Vírgulas Ausentes ou Excedentes
Itens de array e objeto devem ser separados por uma vírgula simples.
{ "a": 1 "b": 2 }
{ "a": 1, "b": 2 }
Correção: Insere vírgulas faltantes ou remove duplicatas.
Linhas de Comentário Presentes
O JSON padrão não permite comentários (como // ou /* ... */).
{ "id": 1, // ID do usuário "ativo": true }
{ "id": 1, "active": true }
Correção: Remove linhas de comentário do conteúdo de entrada.
Formatos de Números Inválidos
Apenas números decimais simples são válidos (sem NaN, Infinito ou hexadecimal).
{ "val": NaN }
{ "val": null }
Correção: Substitui números inválidos por nulo.
Caracteres de Controle Não Escape
Caracteres como quebras de linha em strings devem ser escapados.
{ "msg": "Linha1 Linha2" }
{ "msg": "Linha1\nLinha2" }
Correção: Escapa corretamente caracteres de controle.
Chaves Duplicadas no Objeto
Chaves duplicadas no mesmo objeto causam ambiguidade.
{ "name": "A", "name": "B" }
{ "name": "B" }
Correção: Mantém apenas o último valor para qualquer chave duplicada.
Arrays Malformados
Arrays devem ter colchetes e vírgulas entre os itens.
[ 1 2 3 ]
[ 1, 2, 3 ]
Correção: Adiciona vírgulas ausentes entre os elementos do array.
Entrada Vazia ou Apenas Espaços
JSON não pode estar vazio.
nulo
Correção: Retorna nulo para entrada vazia.
Exemplo: De JSON Corrompido a um Reparo Válido
{ usuário: 'alice', id: 42, funções: [admin, 'editor',] // vírgula extra ativo: true }Saída JSON Corrigida
{ "user": "alice", "id": 42, "roles": [ "administrador", "editor" ], "active": true }
Como Usar Esta Ferramenta de Reparo de JSON
- Cole ou digite seu JSON com erro no editor abaixo.
- Clique em 'Reparar' para detectar e corrigir automaticamente erros comuns de sintaxe.
- Revise a saída corrigida e copie seu JSON corrigido.
Sempre verifique o JSON reparado antes de usá-lo para dados críticos — ajustes manuais podem ser necessários para entradas complexas ou muito danificadas.
Exemplos de Código para Reparação de JSON
Veja como corrigir JSON em várias linguagens de programação.
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)