Strumento di Riparazione JSON
Correggi e recupera automaticamente JSON danneggiati o malformati—velocemente, in modo sicuro e gratuito.
Questo strumento corregge automaticamente JSON danneggiati o non validi utilizzando la correzione automatica degli errori. È progettato per risolvere i problemi di sintassi più comuni presenti in dati esportati, log o file modificati manualmente—come virgolette mancanti, virgole erranti o parentesi non corrispondenti—e genera un JSON valido e analizzabile come output.
Ripara il tuo JSON qui sotto
Come Funziona il Ripristino JSON
Lo strumento analizza il tuo input alla ricerca di problemi tipici nella sintassi JSON e applica correzioni mirate, generando JSON valido quando possibile.
- Analizza l'input e individua gli errori sintattici comuni, inclusi caratteri non consentiti, parentesi fuori posto e virgolette errate nelle stringhe.
- Applica correzioni per errori frequenti—come aggiungere virgolette mancanti, rimuovere virgole finali o correggere parentesi.
- Restituisce il JSON riparato. Nella maggior parte dei casi, il risultato è pronto per essere analizzato o utilizzato immediatamente.
- Se la struttura non può essere riparata automaticamente, viene mostrato un errore chiaro affinché tu possa correggere il tuo input.
Errori Comuni di JSON e Come Risolverli
Ecco gli errori tipici nei file JSON che questo strumento può correggere, con esempi per ciascuno:
Chiavi senza virgolette
Le chiavi devono essere tra virgolette doppie.
{ nome: "Bob" }
{ "name": "Bob" }
Correzione: Aggiunge virgolette doppie attorno a qualsiasi chiave di oggetto non quotata.
Virgolette singole utilizzate
JSON accetta solo virgolette doppie per le stringhe.
{ 'ruolo': 'amministratore' }
{ "role": "amministratore" }
Correzione: sostituisce gli apici singoli con virgolette doppie in tutte le stringhe.
Virgole finali
Non è consentita la virgola dopo l'ultimo elemento.
{ "a": 1, "b": 2, }
{ "a": 1, "b": 2 }
Correzione: Rimuove tutte le virgole finali.
Parentesi non corrispondenti o non chiuse
Tutte le parentesi tonde e graffe devono essere chiuse correttamente.
[1, 2, 3
[1, 2, 3]
Correzione: Aggiunte parentesi o parentesi graffe mancanti.
Virgole Mancanti o Extra
Gli elementi di array e oggetto devono essere separati da una virgola singola.
{ "a": 1 "b": 2 }
{ "a": 1, "b": 2 }
Correzione: Inserisce le virgole mancanti o rimuove quelle duplicate.
Linee di commento presenti
Lo standard JSON non consente commenti (come // o /* ... */).
{ "id": 1, // ID utente "active": true }
{ "id": 1, "active": true }
Correzione: Rimuove le righe di commento dall'input.
Formati Numerici Non Validi
Sono validi solo numeri decimali semplici (niente NaN, infinito o esadecimale).
{ "val": NaN }
{ "val": null }
Correzione: Sostituisce i numeri non validi con valore nullo.
Caratteri di Controllo Non Escape
I caratteri come le nuove righe nelle stringhe devono essere preceduti da un carattere di escape.
{ "msg": "Linea1 Linea2" }
{ "msg": "Linea1\nLinea2" }
Correzione: gestisce correttamente i caratteri di controllo di escape.
Chiavi Duplicate nell'Oggetto
Chiavi duplicate nello stesso oggetto creano ambiguità.
{ "name": "A", "name": "B" }
{ "name": "B" }
Correzione: mantiene solo l'ultimo valore per ogni chiave duplicata.
Array Non Validi
Gli array devono avere parentesi quadre e virgole tra gli elementi.
[ 1 2 3 ]
[ 1, 2, 3 ]
Correzione: Aggiunte le virgole mancanti tra gli elementi dell'array.
Input vuoto o solo spazi bianchi
Il JSON non può essere vuoto.
null
Correzione: Restituisce null per input vuoto.
Esempio: Da JSON Corrotto a Riparazione Valida
{ user: 'alice', id: 42, roles: [admin, 'editore',] // virgola extra attivo: vero }Output JSON Riparato
{ "user": "alice", "id": 42, "roles": [ "amministratore", "redattore" ], "active": true }
Come utilizzare questo strumento di riparazione JSON
- Incolla o digita il tuo JSON danneggiato nell'editor qui sotto.
- Clicca su 'Ripara' per rilevare e correggere automaticamente gli errori di sintassi più comuni.
- Verifica il risultato riparato e copia il tuo JSON corretto.
Controlla sempre il JSON riparato prima di utilizzarlo per dati critici—potrebbero essere necessari aggiustamenti manuali per input complessi o fortemente danneggiati.
Esempi di Codice per Riparazione JSON
Scopri come riparare il JSON in vari linguaggi di programmazione.
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)