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.

  1. 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.
  2. 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.
  3. Onarılmış JSON'u çıktılar. Çoğu durumda, sonuç hemen ayrıştırmaya veya kullanıma hazırdır.
  4. 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.

Before:
{ name: "Bob" }
After:
{ "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.

Before:
{ 'role': 'yönetici' }
After:
{ "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.

Before:
{ "a": 1, "b": 2, }
After:
{ "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.

Before:
[1, 2, 3
After:
[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.

Before:
{ "a": 1 "b": 2 }
After:
{ "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 /* ... */).

Before:
{ "id": 1, // kullanıcı ID'si
 "aktif": true }
After:
{ "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).

Before:
{ "val": NaN }
After:
{ "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.

Before:
{ "msg": "Satır1
Satır2" }
After:
{ "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.

Before:
{ "name": "A", "name": "B" }
After:
{ "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.

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

Düzeltme: Dizi elemanları arasındaki eksik virgüller eklendi.

Boş Girdi veya Yalnızca Boşluk Karakterleri

JSON boş olamaz.

Before:
After:
null

Düzeltme: Boş giriş için null döndürür.

Örnek: Bozuk JSON'dan Geçerli Onarıma

Yanlış Biçimlendirilmiş JSON Girdisi
{ 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

  1. Kırık JSON'unuzu aşağıdaki editöre yapıştırın veya yazın.
  2. Yaygın sözdizimi hatalarını otomatik olarak tespit edip düzeltmek için 'Onar' seçeneğine tıklayın.
  3. 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.

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)