Инструмент за поправка на JSON
Автоматично коригирайте и възстановявайте счупен или неправилно форматиран JSON—бързо, сигурно и безплатно.
Този инструмент ремонтира повреден или невалиден JSON чрез автоматично коригиране на грешки. Той се фокусира върху най-често срещаните синтактични проблеми в експортирани данни, логове или ръчно редактирани файлове — като липсващи кавички, излишни запетаи или несъответстващи скоби — и генерира валиден, парсируем JSON като резултат.
Поправете своя JSON по-долу
Как работи поправката на JSON
Инструментът проверява въвежданите данни за типични синтактични грешки в JSON и прилага целенасочени корекции, за да генерира валиден JSON, когато е възможно.
- Анализира входните данни и открива често срещани синтактични грешки, включително нелегални символи, неправилно поставени скоби и грешни кавички в низовете.
- Прилага корекции за чести грешки — като добавяне на липсващи кавички, премахване на излишни запетаи или поправка на скоби.
- Извежда поправения JSON. В повечето случаи резултатът е готов за обработка или незабавна употреба.
- Ако структуратa не може да бъде поправена автоматично, се показва ясна грешка, за да можете да коригирате въведените данни.
Чести грешки в JSON и как да ги поправим
Ето типични грешки в JSON, които този инструмент може да поправи, с примери за всяка от тях:
Ключове без кавички
Ключовете трябва да са в двойни кавички.
{ име: "Боб" }
{ "name": "Боб" }
Поправка: Добавя двойни кавички около всички неквотираните ключове на обекти.
Използвани са единични кавички
JSON приема само двойни кавички за низове.
{ 'role': 'администратор' }
{ "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, // потребителско ID "active": true }
{ "id": 1, "active": true }
Корекция: Премахва коментарните редове от входните данни.
Невалидни Формати на Номера
Допустими са само обикновени десетични числа (без NaN, без безкрайност или шестнадесетични стойности).
{ "val": Не_е_число }
{ "val": null }
Поправка: Заменя невалидните числа с null.
Непреобразувани управляващи символи
Знаците като нови редове в низовете трябва да бъдат избягвани с обратна наклонена черта.
{ "msg": "Ред1 Ред2" }
{ "msg": "Ред1\nРед2" }
Поправка: Коректно еквивалентно заместване на управляващите символи.
Дублирани ключове в обект
Дублиращите се ключове в един и същ обект причиняват неяснота.
{ "name": "А", "name": "Б" }
{ "name": "Б" }
Поправка: Запазва само последната стойност за всеки дублиращ се ключ.
Неправилно форматирани масиви
Масивите трябва да имат скоби и запетаи между елементите.
[ 1 2 3 ]
[ 1, 2, 3 ]
Поправка: Добавя липсващите запетаи между елементите на масива.
Празен вход или само интервали
JSON не може да бъде празен.
нула
Поправка: Връща null за празен вход.
Пример: От повреден JSON към валиден ремонт
{ user: 'alice', id: 42, роли: [админ, 'редактор',] // допълнителна запетая активен: вярно }Поправен JSON изход
{ "user": "алиса", "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)