JSON Onarımı

Ücretsiz çevrimiçi JSON Onarım aracı. Sondaki virgüller, tek tırnaklar, tırnaksız anahtarlar, kapanmamış parantezler, yorumlar ve Markdown sarmalayıcıları gibi yaygın sözdizimi hatalarını otomatik olarak tespit edip onarır. AI çıktı temizliği ve kesik JSON kurtarma için tasarlanmıştır. Tüm işlem tarayıcınızda yerel olarak gerçekleşir.

İlgili Öneriler

JSON Onarımı (JSON Repair) Nedir?

JSON Onarımı (JSON Repair), sözdizimi hataları nedeniyle katı bir JSON ayrıştırıcı tarafından tüketilemeyen standart dışı bir JSON metnini, RFC 8259 ile uyumlu geçerli bir JSON dizesine otomatik olarak geri döndürme işlemidir. 'JSON Biçimlendirme (Beautify)' işleminden farklı olarak, JSON Onarımı biçimlendirme farklılıklarını değil yapısal hataları ele alır: sondaki virgüller, tek tırnaklar, eksik tırnaklar, kapanmamış parantezler, Markdown sarmalayıcıları, yorumlar — bunların hepsi JSON.parse() işlevinin doğrudan SyntaxError fırlatmasına neden olur, ancak gerçek dünya geliştirmede son derece yaygındır.

Gerçek mühendislik projelerinde 'standart dışı' JSON'un kaynakları oldukça yoğundur: ① ChatGPT / Claude / Gemini gibi LLM'lerden kopyalarken, çıktı genellikle Markdown kod blokları (```json ... ```) ile sarılır veya açıklayıcı metinler eşlik eder; ② JavaScript nesnelerinin console.log() çıktısından kopyalama, sondaki virgüller ve tek tırnaklar içerebilir; ③ Yapılandırma dosyaları genellikle JSON5 / JSONC genişletilmiş sözdizimi kullanır (yorumlara, tırnaksız anahtarlara, çok satırlı dizelere vb. izin verir); ④ Akış yanıtları veya günlük kesilmeleri JSON'u orta noktada kırabilir, kapanış `}` veya `"` eksik kalabilir. Bir JSON Onarım aracı, giriş metnini tarar, bu tipik sorunları tanımlar ve içeriği 'minimum müdahale' ilkesiyle standart JSON'a geri döndürürken orijinal veri anlamını mümkün olduğunca korur.

Uygulama düzeyinde, JSON Onarımı tipik olarak iki aşamadan oluşur: ① Toleranslı ayrıştırma (tolerant parse) — karakter akışını adım adım işlemek için düzenli ifadeler yerine durum makinesi tabanlı bir tarayıcı kullanır, 'dizelerin içindeki' ve 'dizelerin dışındaki' sözdizimi karakterlerini ayırt eder; ② Kanonik çıktı (canonical output) — sonucu `JSON.parse` + `JSON.stringify` ile yeniden oluşturur, çıktının herhangi bir alt akış katı ayrıştırıcı için %100 geçerli olmasını sağlar. GeekFormat'in JSON Onarım aracı, tüm onarım akışını tarayıcıda yerel olarak tamamlar, orijinal içeriği hiçbir sunucuya göndermez; hassas API yanıtları, dahili yapılandırma dosyaları ve AI model çıktılarını işlemek için uygundur.

Kullanım senaryoları

  • AI/LLM çıktı temizliği: ChatGPT/Claude tarafından döndürülen Markdown sarmalayıcılı, açıklayıcı metinli ve sondaki virgüllü JSON'u tek tıklamayla standart JSON'a dönüştürün
  • API hata ayıklama ve sorun giderme: API yanıtları ağ geçidi veya ağ sorunları nedeniyle kesildiğinde, orijinal veri yapısını bulmak için parantezleri ve dizeleri hızla tamamlayın
  • Konsoldan kopyalanan JavaScript nesne literalleri: tek tırnaklar, sondaki virgüller ve tırnaksız anahtarlar için hepsi bir arada düzeltme
  • Yapılandırma dosyası temizliği: JSON5/JSONC'deki yorumları kaldırarak standart JSON elde edin, alt akış hizmetlerine birleşik bağlantıya hazır hale getirin
  • Günlük ve pano verisi onarımı: yorumlar, özel boşluklar veya kesilmeler içeren JSON parçalarını hızla standartlaştırın
  • Veri taşıma ve betik ön işleme: birkaç geçersiz JSON'un tüm ETL yığınını engellemesini önlemek için veri taşıma hattına bir onarım adımı ekleyin

Nasıl Kullanılır

  1. Hatalı, Markdown sarmalayıcılı veya kesik JSON içeriğini sol giriş kutusuna yapıştırın veya tipik bir bozuk JSON yüklemek için 'Örnek'e tıklayın veya bir .json/.txt dosyası yükleyin
  2. Araç, yaygın sözdizimi sorunlarını otomatik olarak tespit edip düzeltir; sağ çıktı alanı, biçimlendirilmiş standart JSON'u ve her sorun türünün onarım sayısını gösterir
  3. Kırmızı hata mesajları kalırsa, girişi manuel olarak düzenleyebilir ve onarımı yeniden tetikleyebilirsiniz (Mac: ⌘+Shift+R, Windows: Ctrl+Shift+R)
  4. Yapının doğru olduğunu onayladıktan sonra, onarım sonucunu panoya kopyalamak için 'Kopyala'ya tıklayın veya daha fazla biçimlendirme, doğrulama vb. için repaired.json olarak kaydetmek üzere 'İndir'e tıklayın

Özellikler

  • 7 yaygın sözdizimi hatasını kapsar: sondaki virgüller, tek tırnaklar, tırnaksız anahtarlar, kapanmamış dizeler, yorumlar, eksik parantezler, Markdown kod bloğu sarmalayıcıları
  • AI çıktı temizliği için optimize edilmiştir: ```json sarmalayıcılarını ve kod bloğu dışındaki açıklayıcı metni otomatik olarak kaldırır, ChatGPT, Claude, Gemini ve diğer LLM'lerin tipik çıktılarını tanır
  • JSON5/JSONC uyumlu: yorumlar, gevşek tırnaklar ve özel boşluklar (görünmez Unicode karakterleri gibi) dahil genişletilmiş sözdizimini ayrıştırabilir
  • Kesik JSON akıllı tamamlama: API yanıtlarının kesilmesi ve eksik kapanış parantezleri durumlarını, eksik parantezleri ve tırnakları otomatik tamamlayarak işler
  • Onarım sorunu görselleştirme: Her sorun türünün kaç kez onarıldığını otomatik olarak sayar ve gösterir, denetim ve manuel incelemeyi kolaylaştırır
  • Gizlilik için yerel işleme: ayrıştırma, onarım ve biçimlendirme tamamen tarayıcıda gerçekleşir, giriş içeriği hiçbir sunucuya gönderilmez
  • Biçimlendirme ile sorunsuz geçiş: onarılan standart JSON, tek tıklamayla JSON Biçimlendirme, Şema Doğrulama ve kod üretimi gibi sonraki işlemlere aktarılabilir
  • Dosya ve örnek yükleme: .json/.txt dosyası yüklemeyi veya örnek yüklemek için tıklamayı destekler, onarım etkisini hızlıca doğrulamayı sağlar

Kod Örnekleri

jsonrepair JavaScript kütüphanesi ile programatik onarım

javascript
// npm install jsonrepair
import { jsonrepair } from 'jsonrepair';

const broken = `{
  name: 'Alice',
  age: 30,
  tags: ['dev', 'writer',], // trailing comma + comment
}`;

try {
  const fixed = jsonrepair(broken);
  const obj = JSON.parse(fixed);
  console.log(obj);
  // => { name: 'Alice', age: 30, tags: ['dev', 'writer'] }
} catch (err) {
  console.error('Still unrepairable:', err.message);
}

jsonrepair Python kütüphanesi ile programatik onarım

python
# pip install jsonrepair
from jsonrepair import jsonrepair
import json

broken = '''{
  name: "Alice",
  age: 30,
  tags: ["dev", "writer",], // trailing comma + comment
}'''

fixed = jsonrepair(broken)
obj = json.loads(fixed)
print(obj)
# => {'name': 'Alice', 'age': 30, 'tags': ['dev', 'writer']}

jq + sed ile hızlı sondaki virgül düzeltmesi (yalnızca acil durum)

bash
# Nesne/dizi sonundaki virgülleri kaldır (acil durum seçeneği; yorumları / tek tırnakları İŞLEMEZ)
# Karmaşık senaryolar için jsonrepair gibi özel bir kütüphane kullanın
sed -E 's/,([ \t]*[}\]])/\1/g' broken.json > clean.json

# Onarılan çıktıyı doğrula
jq . clean.json >/dev/null && echo 'JSON is valid'

Sık Sorulan Sorular

JSON Onarımı ile JSON Biçimlendirme arasındaki fark nedir?

JSON Biçimlendirme yalnızca içeriği zaten geçerli olan, yalnızca girinti veya boşlukları tutarsız olan JSON'u yeniden düzenler. JSON Onarımı ise özellikle sözdizimi hatalı JSON'u işler: önce sondaki virgüller, tek tırnaklar, yorumlar ve eksik parantezler gibi yapısal sorunları düzeltir, ardından standart format çıktısı verir. Biçimlendirme aracı SyntaxError verdiğinde, önce JSON Onarımı kullanılmalıdır.

Araç hangi yaygın JSON sözdizimi hatalarını onarabilir?

Araç, aşağıdaki sık karşılaşılan sorunlar için akıllı onarım algoritmaları içerir: 1) Sondaki virgüller (Trailing comma); 2) Çift tırnak yerine tek tırnak; 3) Tırnaksız anahtar adları; 4) Kapanmamış dizeler; 5) JavaScript satır/blok yorumları; 6) Markdown kod blokları ile sarılmış JSON; 7) Kesik sondan kaynaklanan eksik süslü/köşeli parantezler.

AI veya LLM'lerin çıktı JSON'u neden genellikle standart dışıdır?

Büyük dil modelleri (ChatGPT, Claude, Gemini gibi) genellikle Markdown sarmalayıcılı (```json ... ```), açıklayıcı ön/son metinli, sondaki virgüllü, yorumlu veya token kesintisi nedeniyle eksik yapılı JSON üretir. JSON Onarımı, bu senaryolar için özel olarak optimize edilmiştir ve AI çıktısını tek tıklamayla geçerli JSON'a temizler.

Onarılan JSON yapısal olarak her zaman orijinal verilerle aynı mıdır?

Onarılan çıktı, JSON standardına uygun geçerli bir dizedir; veri anlamı çoğu durumda korunur. Ancak onarım sezgisel kurallara dayandığından, aşırı derecede bozuk veya belirsiz senaryolarda (örneğin aynı satırda birden fazla eksik virgül) orijinal niyetten hafifçe sapabilir. Kritik veriler için ek olarak Şema Doğrulaması veya manuel inceleme önerilir.

Neden doğrudan Python json.loads veya JavaScript JSON.parse kullanmıyorsunuz?

Yerel ayrıştırıcılar SyntaxError durumunda yalnızca hata verebilir, onarım yapamaz. JSON Onarımı, yerel ayrıştırıcıların önünde konumlanan bir tolerans katmanıdır: önce metni onarmayı dener, ardından yerel ayrıştırıcıya iletir, böylece nihai çıktının herhangi bir katı JSON ayrıştırıcı tarafından tüketilebilmesini sağlar. Aynı fikir, üretim ortamlarında sunucu tarafında ön işleme olarak da uygulanabilir.

JSON5 / JSONC'deki yorumlar korunur mu?

Hayır. Yorumlar JSON5 genişletilmiş sözdiziminin bir parçasıdır, standart JSON'un değil; araç, çıktının standart JSON'a uygunluğunu sağlamak için yorumları kaldırır. Yorumları korumak istiyorsanız, JSON5 kaynak dosyalarını veya JSONC araç zincirini kullanmaya devam edin. JSON5'i standart JSON'a dönüştürmeniz gerekiyorsa, bu araç bunu doğrudan yapar.

Kesik JSON (örneğin akış çıktısı kesildiğinde) onarılabilir mi?

Evet. Araç, eksik kapanış parantezlerini, köşeli parantezleri ve dize kapanış tırnaklarını eşleştirmeye çalışır ve tanınan içeriği mümkün olduğunca korur. Not: kesme noktası bir dize literalı içindeyse, anahtar karakterleri manuel olarak tamamlamanız gerekebilir.

Onarım sonrası veri kaybı olur mu?

Yaygın onarım senaryolarında (sondaki virgülleri kaldırma, tırnak ekleme, parantezleri tamamlama, yorumları kaldırma) veri anlamı tamamen korunur. Nadir durumlarda, orijinal içerikte tersinmez belirsizlik olduğunda (örneğin iç içe geçme seviyesi bozulduğunda), araç mümkün olduğunca muhafazakar onarım yapar ve orijinal haliyle çıktı verir; alanları veya anahtarları aktif olarak silmez.

Birden fazla JSON toplu olarak onarılabilir mi?

Bu araç tek seferde bir girişi onarır. Toplu senaryolar için, önce temel algoritmayı yerel bir betikte (Python'un jsonrepair kütüphanesi veya josdejong/jsonrepair npm paketi gibi) çalıştırmanızı, ardından sonucu manuel doğrulama ve biçimlendirme için bu araca aktarmanızı öneririz.

Onarım sonrası hala biçimlendirme ve Şema Doğrulaması yapmam gerekiyor mu?

Önerilir. Onarım öncelikle sözdizimi düzeyindeki hataları çözer; biçimlendirme ve Şema Doğrulaması okunabilirliği ve iş doğruluğunu sağlar. Onarım aracının çıktısı, GeekFormat'in JSON Biçimlendirme, Şema Doğrulayıcı ve kod üreteçleri ile sorunsuz bir şekilde bağlanır.

Araç JSON'umu bir sunucuya yükler mi?

Hayır. Tüm ayrıştırma, onarım ve biçimlendirme tarayıcıda yerel olarak gerçekleşir; ne giriş ne de ara sonuçlar herhangi bir sunucuya gönderilmez. Çevrimdışı çalışır, hassas bilgiler içeren JSON'u (üretim ortamı API yanıtları, dahili yapılandırmalar gibi) işlemek için uygundur.

Her seferinde kullanılan onarım stratejisi sabitlenebilir mi?

Bu araç, başarı oranını en üst düzeye çıkarmak için varsayılan olarak tüm yaygın onarım kurallarını etkinleştirir. Belirli bir dil veya ekip için kurallar üzerinde ince ayar kontrolüne ihtiyacınız varsa, üretim ortamınızda jsonrepair kütüphanesini kullanabilir ve belirli kuralları seçici olarak etkinleştirebilir veya devre dışı bırakabilirsiniz. Bu aracın çıktısı, sonraki doğrulama için standartlaştırılmış bir girdi olarak da kullanılabilir.

Sorun Giderme

"Bu JSON onarılamıyor" hatası

Neden: giriş metni, birden fazla eksik parantez, kesik dize literalleri veya bozuk karakter seti gibi ciddi yapısal hasara sahiptir. Çözüm: önce orijinal dosyayı düz metin düzenleyicide açın, kodlamanın BOM'suz UTF-8 olduğunu ve sıkıştırılmış ikili olmadığını doğrulayın; veriler bir API yanıtından geldiyse, tamamlama için yukarı akışla iletişime geçin; aşırı derecede bozuk veri setleri için doğrudan kaynak dosyayı kullanın.

Onarım sonrası alanlar yanlış konuma taşındı

Neden: orijinal metin, yorumlar veya dize literalleri içinde JSON sözdizimi karakterleri (//, /*, } gibi) içeriyordu ve ayrıştırıcıyı yanılttı; veya iç içe geçme seviyesi o kadar derin ki parantez eşleştirme kaydı. Çözüm: dizeler içindeki // ve /* karakterlerini manuel olarak ters eğik çizgi ile kaçışlandırın; derinlemesine iç içe geçmiş veriler için, onarımı yeniden çalıştırmadan önce geçici dış parantezler veya satır sonları ekleyin.

AI çıktısındaki açıklayıcı metin kaldırılmadı

Neden: AI çıktısı genellikle doğal dille başlar/biter (örn. "İşte sonuç:") ve birden fazla satıra yayılabilir. Çözüm: JSON bloğu dışındaki metni silmek için bir metin düzenleyici kullanın, yalnızca en dıştaki ```json sarmalayıcısı içindeki içeriği koruyun; araç hala tanıyamazsa, onarımı yeniden çalıştırmadan önce manuel olarak en dıştaki { } ekleyin.

Onarım sonrası boyut değişmedi veya bazı karakterler değiştirildi

Neden: orijinal, ters eğik çizgiler, Unicode kaçışları veya HTML varlıkları içeriyordu ve araç bunları JSON kurallarına göre yeniden kaçışlandırdı. Çözüm: orijinalin bir JS dizesi içinde iç içe olup olmadığını kontrol edin; bir HTML sayfasındaysa, önce HTML kod çözme yapın; kaçışlandırma sonrası karakterlerin artması normaldir.

Tarayıcı "Yetersiz bellek" gösteriyor veya sayfa donuyor

Neden: 5–10 MB'ı aşan tek bir giriş, tarayıcıya önemli bellek baskısı uygular. Çözüm: verileri daha küçük partilere bölün (her biri 1–2 MB); veya akış işleme için sunucu tarafında jsonrepair kütüphanesini kullanın; onarılan sonuç ile orijinal arasındaki küçük fark normaldir.

Onarım sonrası Şema Doğrulaması hala hata bildiriyor

Neden: JSON Onarımı yalnızca sözdizimi düzeyindeki hataları düzeltir; iş alan adlarının, türlerinin veya değerlerinin Şema'ya uygunluğunu denetlemez. Çözüm: alan kısıtlamalarını kontrol etmek için GeekFormat'in JSON Şema Doğrulama aracını kullanın; hatalara göre belirli alanları bulun ve manuel olarak düzeltin.

Sözlük

JSON
JavaScript Object Notation, RFC 8259'da tanımlanan anahtar-değer tabanlı hafif bir veri değişim formatı. REST API'ler, yapılandırma dosyaları ve günlükler için fiili standart.
RFC 8259
IETF tarafından yayınlanan resmi JSON belirtimi, geçerli JSON'un katı sözdizimini tanımlar — tüm anahtarlar çift tırnak içinde olmalıdır, dizelerde yalnızca sınırlı sayıda karakter kaçış gerektirir, yorumlara ve sondaki virgüllere izin verilmez.
JSON.parse
JavaScript ve modern tarayıcılara yerleşik katı JSON ayrıştırıcı, RFC 8259'u takip eder. Herhangi bir sözdizimi hatasında doğrudan SyntaxError fırlatır ve toleranslı onarım yapamaz.
JSON5
JSON için genişletilmiş sözdizimi (standart dışı), tırnaksız anahtarlara, tek tırnaklı dizelere, yorumlara (// ve /* */), sondaki virgüllere, onaltılık sayılara vb. izin verir. İnsanların yazması daha kolaydır ancak JSON.parse ile uyumsuzdur.
JSONC
JSON with Comments, VS Code gibi düzenleyicilerin yorumlu JSON yapılandırma dosyaları (tsconfig.json gibi) için kullandığı genel ad. Aslında JSON5'in yaygın bir takma adıdır.
Trailing Comma / Sondaki Virgül
Bir nesne veya dizinin son öğesinden sonraki fazladan virgül. JavaScript'te izin verilir ancak JSON standardı tarafından yasaklanmıştır — LLM çıktısı ve console.log() kopyalarında en yaygın sözdizimi hatasıdır.
Markdown Kod Bloğu
Üç ters tırnak (```) ile sarılmış bir kod parçacığı. LLM'ler JSON çıktısını verirken genellikle otomatik olarak ```json ... ``` ile sarar; doğrudan JSON.parse() işlevine yapıştırmak başarısız olur.
Tolerant Parser / Toleranslı Ayrıştırıcı
Sözdizimi hatalarıyla karşılaştığında kurtarmayı deneyen ve ayrıştırmaya devam edebilen bir ayrıştırıcı. JSON Onarım aracının çekirdek motoru, katı JSON.parse'ten farklıdır.
SyntaxError
JavaScript tarafından fırlatılan sözdizimi hatası istisnası. Herhangi bir katı JSON ayrıştırıcı, RFC 8259'a uymayan giriş aldığında bu hatayı fırlatır.
Canonical JSON / Kanonik JSON
Parse + stringify ile yeniden oluşturulmuş JSON, kararlı anahtar sırası, fazladan boşluk olmadan ve standart ayrıştırıcılarla %100 uyumlu. JSON Onarım aracının nihai çıktı formatı.

Yaygın JSON Onarım Hata Türleri ve Örnekleri

Hata KategorisiÖnceSonraOnarım Yöntemi
Sondaki virgül{ "a": 1, }{ "a": 1 }Son öğeden sonraki virgülü kaldır
Tek tırnak{ 'a': 1 }{ "a": 1 }Tüm tek tırnakları çift tırnakla değiştir
Tırnaksız anahtar{ a: 1 }{ "a": 1 }Anahtar adına çift tırnak ekle
Satır yorumu{ // yorum "a": 1 }{ "a": 1 }// tam satır yorumlarını kaldır
Blok yorumu{ /* blok */ "a": 1 }{ "a": 1 }/* */ blok yorumlarını kaldır
Markdown sarmalayıcı```json { "a": 1 } ```{ "a": 1 }```json ve ``` sarmalayıcılarını kaldır
Kapanmamış dize{ "a": "hello }{ "a": "hello" }Eksik dize kapanış tırnağını ekle
Eksik parantez{ "a": 1{ "a": 1 }Yığın eşleştirme ile eksik kapanış süslü/köşeli parantezleri tamamla

JSON Onarımı vs JSON Biçimlendirme vs JSON Şema Doğrulaması

AraçNe çözerGiriş gereksinimiBaşarısızlık modu
JSON OnarımıSözdizimi hatalı JSON'u geçerli JSON'a dönüştürToleranslı, standart dışı JSON'u kabul ederYapı tahmin edilemeyecek kadar bozuksa hata verir
JSON BiçimlendirmeGeçerli JSON'u yeniden düzenleZaten geçerli JSON olmalıdırSyntaxError doğrudan fırlatılır
JSON SıkıştırmaBoşlukları kaldır, boyutu küçültZaten geçerli JSON olmalıdırSyntaxError doğrudan fırlatılır
JSON Şema DoğrulamasıAlan türlerinin/değerlerinin iş kurallarına uygunluğunu kontrol etZaten geçerli JSON olmalıdırHer alanın ihlal ettiği kuralları listeler
JSON Merge / SortÇok kaynaklı birleştirme / anahtar sıralamaZaten geçerli JSON olmalıdırSyntaxError doğrudan fırlatılır

Authoritative References