JSON Javító Eszköz
Javítsa és állítsa helyre automatikusan a sérült vagy hibás JSON fájlokat — biztonságosan, gyorsan és ingyen.
Ez az eszköz automatikus hibajavítással javítja a sérült vagy érvénytelen JSON-t. A leggyakoribb szintaxisproblémákat célozza meg, amelyek exportált adatokban, naplókban vagy kézzel szerkesztett fájlokban fordulnak elő — például hiányzó idézőjelek, tévedésből bekerült vesszők vagy nem egyező zárójelek — és érvényes, feldolgozható JSON-t állít elő eredményként.
Javítsa ki az alábbi JSON-t
Hogyan működik a JSON javítása
Az eszköz átvizsgálja a bevitt adatokat a tipikus JSON szintaxis hibákra, és célzott javításokat alkalmaz, hogy lehetőség szerint érvényes JSON-t hozzon létre.
- Feldolgozza a bemenetet, és felismeri a gyakori szintaktikai hibákat, például az illegális karaktereket, rosszul elhelyezett zárójeleket és helytelen idézőjeleket. Kiemelten segít a hibák gyors javításában és a kód megbízhatóságának növelésében.
- Javításokat alkalmaz a gyakori hibákra — például hiányzó idézőjelek hozzáadása, felesleges vesszők eltávolítása vagy zárójelek korrigálása.
- A javított JSON-t adja vissza. A legtöbb esetben az eredmény azonnal feldolgozható vagy használható.
- Ha a szerkezetet nem lehet automatikusan javítani, egy egyértelmű hibaüzenet jelenik meg, hogy módosíthassa a bevitelét.
Gyakori JSON hibák és azok javítása
Íme néhány tipikus JSON-hiba, amelyeket ez az eszköz képes javítani, példákkal mindegyikre:
Idézőjelek nélküli kulcsok
A kulcsoknak dupla idézőjelek között kell lenniük.
{ név: "Bob" }
{ "name": "Bob" }
Javítás: Kettős idézőjeleket ad a nem idézőjeles objektumkulcsok köré.
Egyszeres idézőjelek használata
A JSON csak dupla idézőjeleket fogad el karakterláncokhoz.
{ 'szerep': 'adminisztrátor' }
{ "szerep": "adminisztrátor" }
Javítás: Egyszeres idézőjeleket cserél dupla idézőjelekre az összes szövegben.
Vessző a sor végén
Az utolsó elem után nem megengedett vessző.
{ "a": 1, "b": 2, }
{ "a": 1, "b": 2 }
Javítás: Eltávolítja a végrehagyott vesszőket.
Eltérő vagy Lezáratlan Zárójelek
Minden zárójelnek és kapcsos zárójelnek megfelelően be kell záródnia.
[1, 2, 3
[1, 2, 3]
Javítás: Hiányzó záró zárójelek vagy kapcsos zárójelek hozzáadása.
Hiányzó vagy Túlzott Vesszők
A tömb- és objektumtételeket egyetlen vesszővel kell elválasztani.
{ "a": 1 "b": 2 }
{ "a": 1, "b": 2 }
Javítás: Hiányzó vesszők beszúrása vagy duplikált elemek eltávolítása.
Megjegyzéssorok találhatók
A szabványos JSON nem engedélyezi a megjegyzéseket (mint például // vagy /* ... */).
{ "id": 1, // felhasználó azonosító "active": true }
{ "id": 1, "active": true }
Javítás: Eltávolítja a megjegyzés sorokat a bemenetből.
Érvénytelen számformátumok
Csak egyszerű tizedes számok érvényesek (nem NaN, Végtelen vagy hexadecimális).
{ "val": NaN }
{ "val": null }
Javítás: Érvénytelen számokat null értékre cserél.
Nem megengedett vezérlő karakterek
A karakterek, például az új sorok a sztringekben, escape-elni kell.
{ "msg": "1. sor 2. sor" }
{ "msg": "Első sor\nMásodik sor" }
Javítás: A vezérlőkarakterek helyes elmentése.
Duplikált kulcsok az objektumban
Az azonos kulcsok ismétlése ugyanabban az objektumban kétértelműséget okoz.
{ "name": "A", "name": "B" }
{ "name": "B" }
Javítás: Csak az utolsó értéket tartja meg bármely ismétlődő kulcshoz.
Hibás tömbök
A tömböknek zárójelekkel és elemközi vesszőkkel kell rendelkezniük.
[ 1 2 3 ]
[ 1, 2, 3 ]
Javítás: Hiányzó vesszők hozzáadása a tömb elemei között.
Üres bevitel vagy csak szóközök
A JSON nem lehet üres.
null
Javítás: Üres bemenet esetén null értéket ad vissza.
Példa: Hibás JSON-tól a Hibátlan Javításig
{ user: 'alice', id: 42, roles: [admin, 'szerkesztő',] // extra vessző active: true }Javított JSON kimenet
{ "user": "alice", "id": 42, "roles": [ "adminisztrátor", "szerkesztő" ], "active": true }
Hogyan Használd Ezt a JSON Javító Eszközt
- Illessze be vagy írja be a hibás JSON-ját az alábbi szerkesztőbe.
- Kattintson a „Javítás” gombra a gyakori szintaxis hibák automatikus felismeréséhez és javításához.
- Tekintse át a javított kimenetet, és másolja át a javított JSON-t.
Mindig ellenőrizze a javított JSON-t, mielőtt kritikus adatokhoz használná – bonyolultabb vagy erősen sérült adatok esetén manuális módosításokra lehet szükség.
JSON javítás kód példák
Nézze meg, hogyan javítható a JSON különböző programozási nyelveken.
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)