JSON Onarım Aracı
Kırık veya bozuk JSON'u otomatik olarak güvenli, hızlı ve ücretsiz şekilde düzeltin ve kurtarın.
Bu araç, kırık veya geçersiz JSON verilerini otomatik hata düzeltme ile onarır. İhrac edilmiş verilerde, günlük dosyalarında veya elle düzenlenmiş dosyalarda sıkça karşılaşılan eksik tırnak işaretleri, gereksiz virgüller veya uyumsuz parantezler gibi yaygın sözdizimi sorunlarını hedefler ve geçerli, ayrıştırılabilir JSON çıktısı üretir.
Aşağıdaki JSON dosyanızı onarın
JSON Düzeltme Nasıl Çalışır
Araç, girdiğiniz veriyi tipik JSON sözdizimi sorunları açısından tarar ve mümkün olan durumlarda geçerli JSON oluşturmak için hedefe yönelik düzeltmeler uygular.
- Girdi metnini analiz eder ve yasadışı karakterler, yanlış yerleştirilmiş parantezler ile hatalı string tırnakları gibi yaygın sözdizimi hatalarını tespit eder.
- Eksik tırnak işaretleri eklemek, sondaki fazla virgülleri kaldırmak veya parantezleri düzeltmek gibi sık yapılan hatalar için düzeltmeler uygular.
- Onarılmış JSON'u çıktılar. Çoğu durumda, sonuç hemen ayrıştırmaya veya kullanıma hazırdır.
- Yapı otomatik olarak onarılamazsa, girdinizi ayarlayabilmeniz için net bir hata mesajı gösterilir.
Yaygın JSON Hataları ve Nasıl Düzeltilir
İşte bu araç tarafından düzeltilen tipik JSON hataları ve her biri için örnekler:
Tırnaksız Anahtarlar
Anahtarlar çift tırnak içinde olmalıdır.
{ name: "Bob" }
{ "name": "Bob" }
Düzeltme: Alıntılanmamış nesne anahtarlarının etrafına çift tırnak ekler.
Tek Tırnak İşareti Kullanıldı
JSON yalnızca dizgiler için çift tırnak kabul eder.
{ 'role': 'yönetici' }
{ "role": "yönetici" }
Düzeltme: Tüm stringlerde tek tırnakları çift tırnakla değiştirir.
Sonda Virgüller
Son öğeden sonra virgül kullanılamaz.
{ "a": 1, "b": 2, }
{ "a": 1, "b": 2 }
Düzeltme: Sonundaki gereksiz virgüller kaldırıldı.
Uyumsuz veya Kapanmamış Parantezler
Tüm parantez ve süslü parantezler doğru şekilde kapatılmalıdır.
[1, 2, 3
[1, 2, 3]
Düzeltme: Eksik kapanış köşeli parantezleri veya süslü parantezleri ekler.
Eksik veya Fazla Virgüller
Dizi ve nesne öğeleri tek bir virgülle ayrılmalıdır.
{ "a": 1 "b": 2 }
{ "a": 1, "b": 2 }
Düzeltme: Eksik virgülleri ekler veya çoğaltılanları kaldırır.
Yorum Satırları Mevcut
Standart JSON, yorumlara izin vermez (örneğin // veya /* ... */).
{ "id": 1, // kullanıcı ID'si "aktif": true }
{ "id": 1, "aktif": true }
Düzeltme: Girişteki yorum satırlarını kaldırır.
Geçersiz Numara Formatları
Yalnızca düz ondalık sayılar geçerlidir (NaN, Sonsuzluk veya onaltılık sayı kullanılmaz).
{ "val": NaN }
{ "val": null }
Düzeltme: Geçersiz sayıları null ile değiştirir.
Kaçış Yapılmamış Kontrol Karakterleri
Dizelerdeki yeni satır gibi karakterler kaçış karakteriyle belirtilmelidir.
{ "msg": "Satır1 Satır2" }
{ "msg": "Satır1\nSatır2" }
Düzeltme: Kontrol karakterlerini doğru şekilde kaçırır.
Nesnede Çift Anahtarlar
Aynı nesnede yinelenen anahtarlar belirsizliğe yol açar.
{ "name": "A", "name": "B" }
{ "name": "B" }
Düzeltme: Herhangi bir tekrar eden anahtar için sadece son değeri tutar.
Hatalı Diziler
Dizilerde öğeler arasında köşeli parantezler ve virgüller olmalıdır.
[ 1 2 3 ]
[ 1, 2, 3 ]
Düzeltme: Dizi elemanları arasındaki eksik virgüller eklendi.
Boş Girdi veya Yalnızca Boşluk Karakterleri
JSON boş olamaz.
null
Düzeltme: Boş giriş için null döndürür.
Örnek: Bozuk JSON'dan Geçerli Onarıma
{ kullanıcı: 'alice', kimlik: 42, roller: [yönetici, 'editör'] // ekstra virgül aktif: true }Onarılmış JSON Çıktısı
{ "user": "alice", "id": 42, "roles": [ "yönetici", "editör" ], "active": true }
Bu JSON Onarım Aracı Nasıl Kullanılır
- Kırık JSON'unuzu aşağıdaki editöre yapıştırın veya yazın.
- Yaygın sözdizimi hatalarını otomatik olarak tespit edip düzeltmek için 'Onar' seçeneğine tıklayın.
- Onarılan çıktıyı inceleyin ve düzeltilmiş JSON dosyanızı kopyalayın.
Kritik veriler için kullanmadan önce her zaman onarılmış JSON'u kontrol edin—karmaşık veya ciddi şekilde hasar görmüş girdilerde manuel düzenlemeler gerekebilir.
JSON Onarımı için Kod Örnekleri
Farklı programlama dillerinde JSON nasıl onarılır, öğrenin.
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)