Nástroj na opravu JSON

Automaticky opraviť a obnoviť poškodený alebo nesprávne vytvorený JSON – rýchlo, bezpečne a zadarmo.

Tento nástroj opravuje poškodený alebo neplatný JSON pomocou automatizovanej korekcie chýb. Zameriava sa na najčastejšie syntaktické problémy v exportovaných dátach, logoch alebo ručne upravovaných súboroch — ako chýbajúce úvodzovky, nesprávne čiarky či nezhodné zátvorky — a vytvára platný, spracovateľný JSON ako výsledok.

Opravte svoj JSON nižšie

Ako funguje oprava JSON

Nástroj analyzuje váš vstup na bežné chyby syntaxe JSON a aplikuje cielené opravy, čím zabezpečuje platný JSON vždy, keď je to možné.

  1. Analyzuje vstup a zistí bežné syntaktické chyby, vrátane nelegálnych znakov, nesprávne umiestnených zátvoriek a nesprávnych úvodzoviek v reťazcoch.
  2. Uplatňuje opravy častých chýb – napríklad pridanie chýbajúcich úvodzoviek, odstránenie nadbytočných čiarkok alebo opravu zátvoriek.
  3. Výstupom je opravený JSON. Vo väčšine prípadov je výsledok pripravený na okamžité parsovanie alebo použitie.
  4. Ak nie je možné štruktúru automaticky opraviť, zobrazí sa jasná chyba, aby ste mohli upraviť svoj vstup.

Bežné chyby v JSON a ako ich opraviť

Tu sú bežné chyby v JSON, ktoré tento nástroj dokáže opraviť, spolu s príkladmi pre každú z nich:

Neuvoľnené kľúče

Kľúče musia byť v dvojitých úvodzovkách.

Before:
{ name: "Bob" }
After:
{ "name": "Bob" }

Oprava: Pridáva úvodzovky okolo všetkých neoznačených kľúčov objektov.

Použité jednoduché úvodzovky

JSON akceptuje pre reťazce iba úvodzovky.

Before:
{ 'role': 'administrátor' }
After:
{ "role": "administrátor" }

Oprava: Nahrádza jednoduché úvodzovky za dvojité úvodzovky vo všetkých reťazcoch.

Následné čiarky

Za poslednou položkou nie je povolená čiarka.

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

Oprava: Odstraňuje všetky záverečné čiarky.

Nesúlad alebo Nezatvorené Zátvorky

Všetky zátvorky a zložené zátvorky musia byť správne uzavreté.

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

Oprava: Pridanie chýbajúcich zatváracích zátvoriek alebo zložených zátvoriek.

Chýbajúce alebo nadbytočné čiarky

Položky v poli a objektoch musia byť oddelené jedinou čiarkou.

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

Oprava: Vkladá chýbajúce čiarky alebo odstraňuje duplicitné.

Prítomné komentárové riadky

Štandardný JSON neumožňuje komentáre (ako napríklad // alebo /* ... */).

Before:
{ "id": 1, // ID používateľa
 "active": true }
After:
{ "id": 1, "aktivne": true }

Oprava: Odstráni komentárové riadky z vstupu.

Neplatné formáty čísel

Platné sú iba obyčajné desatinné čísla (žiadne NaN, nekonečno ani hexadecimálne).

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

Oprava: Neplatné čísla sa nahradia hodnotou null.

Nepovolené riadiace znaky

Znaky, ako napríklad nové riadky v reťazcoch, musia byť správne uniknuté.

Before:
{ "msg": "Riadok1
Riadok2" }
After:
{ "msg": "Riadok1\nRiadok2" }

Oprava: Správne unikajú riadiace znaky.

Duplikované kľúče v objekte

Duplicitné kľúče v rovnakom objekte spôsobujú nejasnosti.

Before:
{ "name": "A", "name": "B" }
After:
{ "name": "B" }

Oprava: Zachováva iba poslednú hodnotu pre každý duplicitný kľúč.

Nesprávne formátované polia

Polia musia mať zátvorky a čiarky medzi položkami.

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

Oprava: Pridanie chýbajúcich čiark medzi prvkami poľa.

Prázdny vstup alebo iba medzery

JSON nesmie byť prázdny.

Before:
After:
null

Oprava: Pre prázdny vstup vráti hodnotu null.

Príklad: Od poškodeného JSON k platnej oprave

Nesprávny formát JSON vstupu
{ užívateľ: 'alice', id: 42, role: [admin, 'editor',] // nadbytočná čiarka
 aktívny: true }
Opravený JSON výstup
{
  "user": "alice",
  "id": 42,
  "roles": [
    "administrátor",
    "editor"
  ],
  "active": true
}

Ako používať tento nástroj na opravu JSON

  1. Vložte alebo zadajte svoj neplatný JSON do editora nižšie.
  2. Kliknite na „Opraviť“ pre automatickú detekciu a opravu bežných syntaktických chýb.
  3. Skontrolujte opravený výstup a skopírujte svoj opravený JSON.

Vždy pred použitím opravenej JSON skontrolujte—pre zložité alebo silne poškodené vstupy môžu byť potrebné manuálne úpravy.

Príklady kódu na opravu JSON

Pozrite si, ako opraviť JSON v rôznych programovacích jazykoch.

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)