JSON reparationsværktøj
Ret og genskab automatisk ødelagt eller forkert formateret JSON—sikkert, hurtigt og gratis.
Dette værktøj reparerer ødelagt eller ugyldig JSON ved hjælp af automatisk fejlkorrigering. Det retter de mest almindelige syntaksproblemer, der findes i eksporterede data, logfiler eller manuelt redigerede filer—som manglende citationstegn, overflødige kommaer eller ubalancerede parenteser—og genererer gyldig, parsebar JSON som output.
Reparer din JSON nedenfor
Sådan fungerer JSON-reparation
Værktøjet scanner din indtastning for typiske JSON-syntaksfejl og anvender målrettede rettelser, så der produceres gyldig JSON, når det er muligt.
- Analyserer input og finder almindelige syntaksfejl, herunder ulovlige tegn, fejlplacerede parenteser og forkerte anførselstegn i tekststrenge.
- Anvender rettelser for hyppige fejl – som at tilføje manglende citationstegn, fjerne afsluttende kommaer eller rette parenteser.
- Genererer den reparerede JSON. I de fleste tilfælde er resultatet klar til at blive parset eller brugt med det samme.
- Hvis strukturen ikke kan repareres automatisk, vises en tydelig fejlmeddelelse, så du kan rette din indtastning.
Almindelige JSON-fejl og hvordan du retter dem
Her er typiske JSON-fejl, som dette værktøj kan rette, med eksempler for hver enkelt:
Nøgler uden anførselstegn
Nøgler skal være omsluttet af dobbelte anførselstegn.
{ navn: "Bob" }
{ "name": "Bob" }
Fix: Tilføjer dobbelte anførselstegn rundt om alle uanførte objektnøgler.
Enkeltanførselstegn Bruges
JSON accepterer kun dobbelte anførselstegn til strenge.
{ 'rolle': 'admin' }
{ "rolle": "administrator" }
Rettelse: Erstatter enkelte anførselstegn med dobbelte anførselstegn i alle tekststrenge.
Efterfølgende kommaer
Der må ikke sættes komma efter det sidste element.
{ "a": 1, "b": 2, }
{ "a": 1, "b": 2 }
Fix: Fjerner eventuelle afsluttende kommaer.
Uoverensstemmende eller Ikke Lukkede Parentheser
Alle parenteser og klammer skal lukkes korrekt.
[1, 2, 3
[1, 2, 3]
Fix: Tilføjer manglende lukkende parenteser eller krøllede parenteser.
Manglende eller Ekstra Kommaer
Elementer i arrays og objekter skal adskilles af et enkelt komma.
{ "a": 1 "b": 2 }
{ "a": 1, "b": 2 }
Ret: Indsætter manglende kommaer eller fjerner duplikater.
Kommentarlinjer til stede
Standard JSON tillader ikke kommentarer (som // eller /* ... */).
{ "id": 1, // bruger-ID "active": true }
{ "id": 1, "aktiv": sand }
Ret: Fjerner kommentarlinjer fra input.
Ugyldige nummerformater
Kun almindelige decimaltal er gyldige (ingen NaN, uendelig eller hexadecimale tal).
{ "val": NaN }
{ "val": null }
Ret: Erstatter ugyldige numre med null.
Ukodede Kontroltegn
Tegn som linjeskift i strenge skal undslippes.
{ "msg": "Linje1 Linje2" }
{ "msg": "Linje1\nLinje2" }
Fikset: Undslipper kontroltegn korrekt.
Dublerede nøgler i objekt
Duplikerede nøgler i samme objekt forårsager uklarhed.
{ "name": "A", "name": "B" }
{ "name": "B" }
Løsning: Beholder kun den sidste værdi for enhver duplikeret nøgle.
Fejlformaterede arrays
Arrays skal have klammer og kommaer mellem elementerne.
[ 1 2 3 ]
[ 1, 2, 3 ]
Ret: Tilføjer manglende kommaer mellem elementer i arrayet.
Tom indtastning eller kun mellemrum
JSON kan ikke være tom.
null
Ret: Returnerer null for tomt input.
Eksempel: Fra beskadiget JSON til en gyldig reparation
{ bruger: 'alice', id: 42, roller: [administrator, 'redaktør',] // ekstra komma aktiv: sand }Repareret JSON-output
{ "user": "alice", "id": 42, "roles": [ "administrator", "redaktør" ], "active": true }
Sådan bruger du dette JSON-reparationsværktøj
- Indsæt eller skriv din ødelagte JSON i editoren nedenfor.
- Klik på 'Reparer' for automatisk at opdage og rette almindelige syntaksfejl.
- Gennemgå den reparerede output og kopier din rettede JSON.
Kontroller altid det reparerede JSON, før det bruges til kritiske data – manuelt tilpasninger kan være nødvendige for komplekse eller meget beskadigede input.
Kodeeksempler til JSON-reparation
Se, hvordan du reparerer JSON i forskellige programmeringssprog.
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)