Εργαλείο Επιδιόρθωσης JSON

Αυτόματη διόρθωση και αποκατάσταση κατεστραμμένου ή εσφαλμένου JSON—ασφαλώς, γρήγορα και δωρεάν.

Αυτό το εργαλείο επιδιορθώνει κατεστραμμένα ή μη έγκυρα αρχεία JSON χρησιμοποιώντας αυτόματη διόρθωση σφαλμάτων. Εστιάζει στα πιο συνηθισμένα συντακτικά προβλήματα που βρίσκονται σε εξαγόμενα δεδομένα, αρχεία καταγραφής ή χειροκίνητα επεξεργασμένα αρχεία — όπως ελλείποντα εισαγωγικά, περιττά κόμματα ή ανομοιόμορφες αγκύλες — και παράγει έγκυρο, αναλυόμενο JSON ως αποτέλεσμα.

Επισκευάστε το JSON σας παρακάτω

Πώς Λειτουργεί η Επισκευή JSON

Το εργαλείο σαρώσει την είσοδό σας για συνηθισμένα προβλήματα σύνταξης JSON και εφαρμόζει στοχευμένες διορθώσεις, παράγοντας έγκυρο JSON όπου είναι δυνατόν.

  1. Αναλύει την είσοδο και εντοπίζει κοινά συντακτικά σφάλματα, όπως μη επιτρεπτοί χαρακτήρες, λανθασμένες αγκύλες και εσφαλμένα εισαγωγικά σε συμβολοσειρές.
  2. Εφαρμόζει διορθώσεις για συνηθισμένα λάθη — όπως η προσθήκη ελλειπόντων εισαγωγικών, η αφαίρεση περιττών κόμματων στο τέλος ή η διόρθωση αγκυλών.
  3. Εξάγει το διορθωμένο JSON. Στις περισσότερες περιπτώσεις, το αποτέλεσμα είναι έτοιμο για ανάλυση ή άμεση χρήση.
  4. Εάν η δομή δεν μπορεί να επιδιορθωθεί αυτόματα, εμφανίζεται ένα σαφές μήνυμα σφάλματος ώστε να μπορείτε να διορθώσετε την είσοδό σας.

Συνηθισμένα Σφάλματα JSON και Πώς να τα Διορθώσετε

Ακολουθούν συνηθισμένα λάθη JSON που μπορεί να διορθώσει αυτό το εργαλείο, με παραδείγματα για κάθε ένα:

Μη Κλειστές Κλειδιά

Τα κλειδιά πρέπει να είναι σε διπλά εισαγωγικά.

Before:
{ όνομα: "Μπομπ" }
After:
{ "name": "Μπομπ" }

Διόρθωση: Προσθέτει διπλά εισαγωγικά γύρω από κάθε μη επισημασμένο κλειδί αντικειμένου.

Χρησιμοποιούνται μονά εισαγωγικά

Το JSON αποδέχεται μόνο διπλά εισαγωγικά για τις συμβολοσειρές.

Before:
{ 'ρόλος': 'διαχειριστής' }
After:
{ "role": "διαχειριστής" }

Επιδιόρθωση: Αντικαθιστά τα μονά εισαγωγικά με διπλά σε όλες τις συμβολοσειρές.

Επικεφαλίδες με Τελείες

Δεν επιτρέπεται κόμμα μετά το τελευταίο στοιχείο.

Before:
{ "a": 1, "b": 2, }
After:
{ "a": 1, "b": 2 }

Διόρθωση: Αφαιρεί τυχόν κόμματα στο τέλος.

Αντιστοιχία ή Μη Κλειστές Παρενθέσεις

Όλες οι αγκύλες και οι αγκύλες πρέπει να κλείνουν σωστά.

Before:
[1, 2, 3
After:
[1, 2, 3]

Διόρθωση: Προσθέτει τα ελλείποντα κλείνοντα αγκύλες ή παρενθέσεις.

Ελλιπή ή Επιπλέον Κόμματα

Τα στοιχεία πίνακα και αντικειμένου πρέπει να διαχωρίζονται με ένα μόνο κόμμα.

Before:
{ "a": 1 "b": 2 }
After:
{ "a": 1, "b": 2 }

Διόρθωση: Εισάγει τα ελλείποντα κόμματα ή αφαιρεί διπλότυπα.

Γραμμές σχολίων παρούσες

Το πρότυπο JSON δεν επιτρέπει σχόλια (όπως // ή /* ... */).

Before:
{ "id": 1, // αναγνωριστικό χρήστη
 "active": true }
After:
{ "id": 1, "active": true }

Επιδιόρθωση: Αφαιρεί τις γραμμές σχολίων από την είσοδο.

Μη Έγκυρες Μορφές Αριθμών

Ισχύουν μόνο απλοί δεκαδικοί αριθμοί (χωρίς NaN, Άπειρο ή δεκαεξαδικούς).

Before:
{ "val": NaN }
After:
{ "val": null }

Διόρθωση: Αντικαθιστά μη έγκυρους αριθμούς με τιμή null.

Μη διαφεύγοντες χαρακτήρες ελέγχου

Οι χαρακτήρες όπως οι αλλαγές γραμμής σε συμβολοσειρές πρέπει να αποφεύγονται με διαφυγή.

Before:
{ "msg": "Γραμμή1
Γραμμή2" }
After:
{ "msg": "Γραμμή1\nΓραμμή2" }

Διόρθωση: Διαχειρίζεται σωστά τους χαρακτήρες ελέγχου.

Διπλότυπα Κλειδιά σε Αντικείμενο

Τα διπλότυπα κλειδιά στο ίδιο αντικείμενο προκαλούν ασάφεια.

Before:
{ "name": "Α", "name": "Β" }
After:
{ "name": "Β" }

Διόρθωση: Διατηρεί μόνο την τελευταία τιμή για κάθε διπλότυπο κλειδί.

Κακοσχηματισμένοι Πίνακες

Οι πίνακες πρέπει να έχουν αγκύλες και κόμματα μεταξύ των στοιχείων.

Before:
[ 1 2 3 ]
After:
[ 1, 2, 3 ]

Επιδιόρθωση: Προσθήκη των ελλειπόντων κόμματων μεταξύ των στοιχείων του πίνακα.

Κενή Είσοδος ή Μόνο Κενά Χαρακτήρες

Το JSON δεν μπορεί να είναι κενό.

Before:
After:
null

Διόρθωση: Επιστρέφει null για κενή είσοδο.

Παράδειγμα: Από Ασυνεπή JSON σε Έγκυρη Επισκευή

Κακώς μορφοποιημένη είσοδος JSON
{ user: 'alice', id: 42, roles: [διαχειριστής, 'συντάκτης',] // επιπλέον κόμμα
 ενεργός: true }
Επισκευασμένη Εξαγωγή JSON
{
  "user": "alice",
  "id": 42,
  "roles": [
    "διαχειριστής",
    "επιμελητής"
  ],
  "active": true
}

Πώς να Χρησιμοποιήσετε Αυτό το Εργαλείο Επισκευής JSON

  1. Επικολλήστε ή πληκτρολογήστε το κατεστραμμένο JSON σας στον παρακάτω επεξεργαστή.
  2. Κάντε κλικ στο «Επισκευή» για να εντοπίσετε και να διορθώσετε αυτόματα κοινά συντακτικά λάθη.
  3. Επιθεωρήστε το διορθωμένο αποτέλεσμα και αντιγράψτε το διορθωμένο JSON σας.

Ελέγχετε πάντα το διορθωμένο JSON πριν το χρησιμοποιήσετε για κρίσιμα δεδομένα — ενδέχεται να χρειαστούν χειροκίνητες προσαρμογές για σύνθετα ή σοβαρά κατεστραμμένα αρχεία.

Παραδείγματα Κώδικα για Επισκευή JSON

Δείτε πώς να διορθώσετε το JSON σε διάφορες γλώσσες προγραμματισμού.

JavaScript (Node.js) with jsonrepair
Install: npm install jsonrepair
const { jsonrepair } = require('jsonrepair');
const broken = '{ name: "Bob", age: 42, }';
const fixed = jsonrepair(broken);
console.log(fixed); // Now valid JSON!
JavaScript (Node.js) simple fix (not for production)
Install: Standard library
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);
}
Python with dirtyjson
Install: pip install dirtyjson
import dirtyjson
broken = "{ name: 'Bob', age: 42 }"
obj = dirtyjson.loads(broken)
print(obj)
Python with demjson3
Install: pip install demjson3
import demjson3
broken = "{ name: 'Bob', age: 42 }"
obj = demjson3.decode(broken)
print(obj)
Go (using otto for JS-like object parsing)
Install: go get github.com/robertkrimen/otto
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)
  }
}
Java with org.json (manual fix for single quotes)
Install: org.json:json
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);
  }
}
C# with Newtonsoft.Json (try-catch, manual fix)
Install: Newtonsoft.Json
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 (manual fix for single quotes/unquoted keys)
Install: Standard library
<?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);
Ruby with json-repair (via gem or shell call)
Install: gem install json-repair or use npx jsonrepair
# Using system call to npx jsonrepair
require 'open3'
broken = "{ name: 'Bob', age: 42 }"
fixed, _ = Open3.capture2("echo #{broken.inspect} | npx jsonrepair")
puts fixed
Bash (npx jsonrepair CLI)
Install: npm install -g jsonrepair
echo "{ name: 'Bob', age: 42 }" | npx jsonrepair
Rust (suggest manual pre-processing)
Install: Standard libraries
// Rust does not have a json repair crate yet. Pre-process string with regex to fix simple cases, then use serde_json.
Kotlin (manual fix, like Java)
Install: org.json: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)
}
TypeScript (Node.js) with jsonrepair
Install: npm install jsonrepair
import { jsonrepair } from 'jsonrepair';
const broken = '{ name: "Bob", age: 42 }';
const fixed = jsonrepair(broken);
console.log(fixed);
Dart (manual string fixes)
Install: Standard library
var broken = "{ name: 'Bob', age: 42 }";
var fixed = broken.replaceAll("'", '"').replaceAllMapped(
  RegExp(r'([a-zA-Z0-9_]+):'),
  (m) => '"${m[ 1 ]}":',
);
print(fixed);
Elixir (manual fix with Regex)
Install: Standard library
broken = "{ name: 'Bob', age: 42 }"
fixed = Regex.replace(~r/'/, broken, """)
fixed = Regex.replace(~r/(\w+):/, fixed, ""\\1":")
IO.puts(fixed)