Εργαλείο Επιδιόρθωσης JSON
Αυτόματη διόρθωση και αποκατάσταση κατεστραμμένου ή εσφαλμένου JSON—ασφαλώς, γρήγορα και δωρεάν.
Αυτό το εργαλείο επιδιορθώνει κατεστραμμένα ή μη έγκυρα αρχεία JSON χρησιμοποιώντας αυτόματη διόρθωση σφαλμάτων. Εστιάζει στα πιο συνηθισμένα συντακτικά προβλήματα που βρίσκονται σε εξαγόμενα δεδομένα, αρχεία καταγραφής ή χειροκίνητα επεξεργασμένα αρχεία — όπως ελλείποντα εισαγωγικά, περιττά κόμματα ή ανομοιόμορφες αγκύλες — και παράγει έγκυρο, αναλυόμενο JSON ως αποτέλεσμα.
Επισκευάστε το JSON σας παρακάτω
Πώς Λειτουργεί η Επισκευή JSON
Το εργαλείο σαρώσει την είσοδό σας για συνηθισμένα προβλήματα σύνταξης JSON και εφαρμόζει στοχευμένες διορθώσεις, παράγοντας έγκυρο JSON όπου είναι δυνατόν.
- Αναλύει την είσοδο και εντοπίζει κοινά συντακτικά σφάλματα, όπως μη επιτρεπτοί χαρακτήρες, λανθασμένες αγκύλες και εσφαλμένα εισαγωγικά σε συμβολοσειρές.
- Εφαρμόζει διορθώσεις για συνηθισμένα λάθη — όπως η προσθήκη ελλειπόντων εισαγωγικών, η αφαίρεση περιττών κόμματων στο τέλος ή η διόρθωση αγκυλών.
- Εξάγει το διορθωμένο JSON. Στις περισσότερες περιπτώσεις, το αποτέλεσμα είναι έτοιμο για ανάλυση ή άμεση χρήση.
- Εάν η δομή δεν μπορεί να επιδιορθωθεί αυτόματα, εμφανίζεται ένα σαφές μήνυμα σφάλματος ώστε να μπορείτε να διορθώσετε την είσοδό σας.
Συνηθισμένα Σφάλματα JSON και Πώς να τα Διορθώσετε
Ακολουθούν συνηθισμένα λάθη JSON που μπορεί να διορθώσει αυτό το εργαλείο, με παραδείγματα για κάθε ένα:
Μη Κλειστές Κλειδιά
Τα κλειδιά πρέπει να είναι σε διπλά εισαγωγικά.
{ όνομα: "Μπομπ" }
{ "name": "Μπομπ" }
Διόρθωση: Προσθέτει διπλά εισαγωγικά γύρω από κάθε μη επισημασμένο κλειδί αντικειμένου.
Χρησιμοποιούνται μονά εισαγωγικά
Το JSON αποδέχεται μόνο διπλά εισαγωγικά για τις συμβολοσειρές.
{ 'ρόλος': 'διαχειριστής' }
{ "role": "διαχειριστής" }
Επιδιόρθωση: Αντικαθιστά τα μονά εισαγωγικά με διπλά σε όλες τις συμβολοσειρές.
Επικεφαλίδες με Τελείες
Δεν επιτρέπεται κόμμα μετά το τελευταίο στοιχείο.
{ "a": 1, "b": 2, }
{ "a": 1, "b": 2 }
Διόρθωση: Αφαιρεί τυχόν κόμματα στο τέλος.
Αντιστοιχία ή Μη Κλειστές Παρενθέσεις
Όλες οι αγκύλες και οι αγκύλες πρέπει να κλείνουν σωστά.
[1, 2, 3
[1, 2, 3]
Διόρθωση: Προσθέτει τα ελλείποντα κλείνοντα αγκύλες ή παρενθέσεις.
Ελλιπή ή Επιπλέον Κόμματα
Τα στοιχεία πίνακα και αντικειμένου πρέπει να διαχωρίζονται με ένα μόνο κόμμα.
{ "a": 1 "b": 2 }
{ "a": 1, "b": 2 }
Διόρθωση: Εισάγει τα ελλείποντα κόμματα ή αφαιρεί διπλότυπα.
Γραμμές σχολίων παρούσες
Το πρότυπο JSON δεν επιτρέπει σχόλια (όπως // ή /* ... */).
{ "id": 1, // αναγνωριστικό χρήστη "active": true }
{ "id": 1, "active": true }
Επιδιόρθωση: Αφαιρεί τις γραμμές σχολίων από την είσοδο.
Μη Έγκυρες Μορφές Αριθμών
Ισχύουν μόνο απλοί δεκαδικοί αριθμοί (χωρίς NaN, Άπειρο ή δεκαεξαδικούς).
{ "val": NaN }
{ "val": null }
Διόρθωση: Αντικαθιστά μη έγκυρους αριθμούς με τιμή null.
Μη διαφεύγοντες χαρακτήρες ελέγχου
Οι χαρακτήρες όπως οι αλλαγές γραμμής σε συμβολοσειρές πρέπει να αποφεύγονται με διαφυγή.
{ "msg": "Γραμμή1 Γραμμή2" }
{ "msg": "Γραμμή1\nΓραμμή2" }
Διόρθωση: Διαχειρίζεται σωστά τους χαρακτήρες ελέγχου.
Διπλότυπα Κλειδιά σε Αντικείμενο
Τα διπλότυπα κλειδιά στο ίδιο αντικείμενο προκαλούν ασάφεια.
{ "name": "Α", "name": "Β" }
{ "name": "Β" }
Διόρθωση: Διατηρεί μόνο την τελευταία τιμή για κάθε διπλότυπο κλειδί.
Κακοσχηματισμένοι Πίνακες
Οι πίνακες πρέπει να έχουν αγκύλες και κόμματα μεταξύ των στοιχείων.
[ 1 2 3 ]
[ 1, 2, 3 ]
Επιδιόρθωση: Προσθήκη των ελλειπόντων κόμματων μεταξύ των στοιχείων του πίνακα.
Κενή Είσοδος ή Μόνο Κενά Χαρακτήρες
Το JSON δεν μπορεί να είναι κενό.
null
Διόρθωση: Επιστρέφει null για κενή είσοδο.
Παράδειγμα: Από Ασυνεπή JSON σε Έγκυρη Επισκευή
{ user: 'alice', id: 42, roles: [διαχειριστής, 'συντάκτης',] // επιπλέον κόμμα ενεργός: true }Επισκευασμένη Εξαγωγή JSON
{ "user": "alice", "id": 42, "roles": [ "διαχειριστής", "επιμελητής" ], "active": true }
Πώς να Χρησιμοποιήσετε Αυτό το Εργαλείο Επισκευής JSON
- Επικολλήστε ή πληκτρολογήστε το κατεστραμμένο JSON σας στον παρακάτω επεξεργαστή.
- Κάντε κλικ στο «Επισκευή» για να εντοπίσετε και να διορθώσετε αυτόματα κοινά συντακτικά λάθη.
- Επιθεωρήστε το διορθωμένο αποτέλεσμα και αντιγράψτε το διορθωμένο JSON σας.
Ελέγχετε πάντα το διορθωμένο JSON πριν το χρησιμοποιήσετε για κρίσιμα δεδομένα — ενδέχεται να χρειαστούν χειροκίνητες προσαρμογές για σύνθετα ή σοβαρά κατεστραμμένα αρχεία.
Παραδείγματα Κώδικα για Επισκευή JSON
Δείτε πώς να διορθώσετε το JSON σε διάφορες γλώσσες προγραμματισμού.
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)