Perbaikan JSON

Alat Perbaikan JSON online gratis. Otomatis mendeteksi dan memperbaiki koma akhir, kutip tunggal, kunci tanpa kutip, kurung tidak tertutup, komentar, dan pembungkus Markdown. Dirancang untuk pembersihan output AI dan pemulihan JSON terpotong. Seluruh pemrosesan dilakukan secara lokal di browser.

Rekomendasi Terkait

Apa itu Perbaikan JSON (JSON Repair)?

Perbaikan JSON (JSON Repair) adalah proses mengembalikan teks JSON non-standar yang tidak dapat dikonsumsi oleh parser JSON ketat karena kesalahan sintaks, secara otomatis menjadi string JSON yang valid sesuai RFC 8259. Berbeda dengan 'Format JSON (Beautify)', Perbaikan JSON tidak menangani perbedaan format melainkan kesalahan struktural: koma akhir, kutip tunggal, kutip hilang, kurung tidak tertutup, pembungkus Markdown, komentar — semuanya menyebabkan JSON.parse() langsung melempar SyntaxError, namun sangat umum dalam pengembangan dunia nyata.

Sumber JSON 'tidak standar' dalam proyek rekayasa nyata sangat terkonsentrasi: ① Saat menyalin dari LLM seperti ChatGPT / Claude / Gemini, output sering dibungkus dalam blok kode Markdown (```json ... ```) atau disertai teks penjelasan; ② Menyalin dari console.log() objek JavaScript mungkin menyertakan koma akhir dan kutip tunggal; ③ File konfigurasi sering menggunakan sintaks diperluas JSON5 / JSONC (mengizinkan komentar, kunci tanpa kutip, string multi-baris, dll.); ④ Respons streaming atau pemotongan log dapat memutus JSON di tengah jalan, kehilangan `}` atau `"` penutup. Alat Perbaikan JSON memindai teks input, mengidentifikasi masalah-masalah tipikal ini, dan mengembalikan konten ke JSON standar dengan prinsip 'gangguan minimal' sambil mempertahankan semantik data asli sebanyak mungkin.

Pada tingkat implementasi, Perbaikan JSON biasanya terdiri dari dua tahap: ① Parse toleran (tolerant parse) — menggunakan pemindai berbasis mesin status alih-alih pencocokan regex untuk memproses aliran karakter langkah demi langkah, membedakan karakter sintaks 'di dalam string' dan 'di luar string'; ② Output kanonik (canonical output) — menghasilkan ulang dengan `JSON.parse` + `JSON.stringify`, memastikan output 100% valid untuk parser ketat hilir mana pun. Alat Perbaikan JSON GeekFormat menyelesaikan seluruh alur perbaikan secara lokal di browser, tidak pernah mengirim konten asli ke server mana pun, cocok untuk memproses respons API sensitif, file konfigurasi internal, dan output model AI.

Kasus penggunaan

  • Pembersihan output AI/LLM: konversi satu klik JSON dengan pembungkus Markdown, teks penjelasan, dan koma akhir dari ChatGPT/Claude menjadi JSON standar
  • Debugging dan pemecahan masalah API: ketika respons API terpotong karena masalah gateway atau jaringan, cepat lengkapi kurung dan string untuk menemukan struktur data asli
  • Literal objek JavaScript yang disalin dari konsol: perbaikan satu atap untuk kutip tunggal, koma akhir, dan kunci tanpa kutip
  • Pembersihan file konfigurasi: hapus komentar dari JSON5/JSONC untuk mendapatkan JSON standar, siap untuk koneksi terpadu ke layanan hilir
  • Perbaikan data log & clipboard: cepat standarkan fragmen JSON yang berisi komentar, spasi khusus, atau pemotongan
  • Pra-pemrosesan migrasi data & skrip: tambahkan langkah perbaikan dalam pipeline migrasi data untuk mencegah beberapa JSON tidak valid memblokir seluruh batch ETL

Cara Penggunaan

  1. Tempelkan konten JSON yang error, terbungkus Markdown, atau terpotong ke kotak input kiri, atau klik 'Contoh' untuk memuat JSON rusak tipikal, atau unggah file .json/.txt
  2. Alat secara otomatis mendeteksi dan memperbaiki masalah sintaks umum; area output kanan menampilkan JSON standar yang diformat dan jumlah setiap jenis masalah yang diperbaiki
  3. Jika masih ada pesan error merah, Anda dapat mengedit input secara manual dan memicu ulang perbaikan (Mac: ⌘+Shift+R, Windows: Ctrl+Shift+R)
  4. Setelah mengonfirmasi struktur benar, klik 'Salin' untuk menempatkan hasil perbaikan ke clipboard, atau klik 'Unduh' untuk menyimpan sebagai repaired.json untuk pemformatan, validasi, dll. lebih lanjut

Fitur

  • Mencakup 7 jenis kesalahan sintaks umum: koma akhir, kutip tunggal, kunci tanpa kutip, string tidak tertutup, komentar, kurung hilang, pembungkus blok kode Markdown
  • Pembersihan output AI dioptimalkan: otomatis menghapus pembungkus ```json dan teks penjelasan di luar blok kode, mengenali output tipikal dari ChatGPT, Claude, Gemini, dan LLM lainnya
  • Kompatibel JSON5/JSONC: mengurai sintaks diperluas termasuk komentar, kutip longgar, dan spasi khusus (seperti karakter Unicode tak terlihat)
  • Pelengkapan cerdas JSON terpotong: menangani respons API terpotong dan kurung penutup hilang dengan melengkapi kurung dan kutip yang hilang secara otomatis
  • Visualisasi masalah perbaikan: otomatis menghitung dan menampilkan berapa kali setiap jenis masalah diperbaiki, memudahkan audit dan tinjauan manual
  • Pemrosesan lokal untuk privasi: parsing, perbaikan, dan pemformatan semuanya dilakukan di browser, konten input tidak dikirim ke server mana pun
  • Serah terima mulus ke pemformatan: JSON standar yang telah diperbaiki dapat langsung masuk ke Format JSON, Validasi Schema, pembuatan kode, dan proses selanjutnya
  • Memuat file & sampel: mendukung pengunggahan file .json/.txt atau klik memuat sampel untuk verifikasi cepat efek perbaikan

Contoh Kode

Perbaikan programatik dengan pustaka JavaScript jsonrepair

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);
}

Perbaikan programatik dengan pustaka Python jsonrepair

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']}

Perbaikan cepat koma akhir dengan jq + sed (hanya darurat)

bash
# Hapus koma akhir dari objek/array (opsi darurat; TIDAK menangani komentar / kutip tunggal)
# Untuk skenario kompleks, gunakan pustaka khusus seperti jsonrepair
sed -E 's/,([ \t]*[}\]])/\1/g' broken.json > clean.json

# Validasi output yang diperbaiki
jq . clean.json >/dev/null && echo 'JSON is valid'

Pertanyaan Umum

Apa perbedaan antara Perbaikan JSON dan Format JSON?

Format JSON hanya memformat ulang JSON yang sudah valid tetapi memiliki indentasi atau spasi yang tidak konsisten. Sebaliknya, Perbaikan JSON secara khusus menangani JSON dengan kesalahan sintaks: pertama-tama memperbaiki masalah struktural seperti koma akhir, kutip tunggal, komentar, dan kurung hilang, kemudian mengeluarkan format standar. Ketika alat format melempar SyntaxError, Anda harus menggunakan Perbaikan JSON terlebih dahulu.

Kesalahan sintaks JSON umum apa yang didukung alat ini untuk diperbaiki?

Alat ini menyertakan algoritma perbaikan cerdas untuk masalah frekuensi tinggi berikut: 1) Koma akhir (Trailing comma); 2) Kutip tunggal sebagai pengganti kutip ganda; 3) Kunci tanpa kutip; 4) String tidak tertutup; 5) Berisi komentar baris/blok JavaScript; 6) JSON terbungkus dalam blok kode Markdown; 7) Kurung kurawal/siku penutup hilang karena ujung terpotong.

Mengapa JSON output dari AI atau LLM sering tidak standar?

Model bahasa besar (seperti ChatGPT, Claude, Gemini) sering menghasilkan JSON dengan pembungkus Markdown (```json ... ```), teks penjelasan awal/akhir, koma akhir, komentar, atau struktur tidak lengkap karena pemotongan token. Perbaikan JSON dioptimalkan khusus untuk skenario ini — membersihkan output AI menjadi JSON valid dalam satu klik.

Apakah JSON yang diperbaiki selalu identik secara struktural dengan data asli?

Output yang diperbaiki adalah string JSON valid yang sesuai dengan standar JSON; semantik data dipertahankan dalam sebagian besar kasus. Namun, karena perbaikan didasarkan pada aturan heuristik, dalam skenario yang sangat rusak atau ambigu (misalnya, beberapa koma hilang pada baris yang sama), hasilnya mungkin sedikit berbeda dari maksud asli. Untuk data penting, disarankan menggunakan Validasi Schema atau tinjauan manual tambahan.

Mengapa tidak langsung menggunakan Python json.loads atau JavaScript JSON.parse?

Parser asli hanya dapat melempar error SyntaxError, tidak dapat melakukan perbaikan. Perbaikan JSON adalah lapisan toleran yang berada di depan parser asli: pertama mencoba memperbaiki teks, kemudian menyerahkannya ke parser asli, memastikan output akhir dapat dikonsumsi oleh parser JSON ketat mana pun. Ide yang sama dapat diterapkan untuk pra-pemrosesan sisi server di lingkungan produksi.

Apakah komentar di JSON5 / JSONC dipertahankan?

Tidak. Komentar adalah bagian dari sintaks diperluas JSON5, bukan JSON standar; alat akan menghapusnya untuk memastikan output sesuai dengan JSON standar. Jika Anda ingin mempertahankan komentar, terus gunakan file sumber JSON5 atau rantai alat JSONC. Jika Anda perlu mengonversi JSON5 ke JSON standar, alat ini melakukannya secara langsung.

Bisakah JSON terpotong (misalnya output streaming terputus) diperbaiki?

Ya. Alat ini mencoba mencocokkan kurung penutup, kurung siku, dan kutip penutup string yang hilang, sambil mempertahankan konten yang dikenali sebanyak mungkin. Catatan: jika titik pemotongan berada di dalam literal string, Anda mungkin perlu melengkapi karakter kunci secara manual.

Apakah ada kehilangan data setelah perbaikan?

Dalam skenario perbaikan umum (menghapus koma akhir, menambahkan kutip, melengkapi kurung, menghapus komentar), semantik data sepenuhnya dipertahankan. Dalam kasus langka, ketika konten asli memiliki ambiguitas ireversibel (misalnya tingkat bersarang hancur), alat akan memperbaiki sekonservatif mungkin dan mempertahankan keadaan asli; tidak akan secara aktif menghapus field atau kunci.

Bisakah memperbaiki beberapa JSON secara batch?

Alat ini memperbaiki satu input per kali. Untuk skenario batch, disarankan menjalankan algoritma dasar secara lokal dalam skrip (seperti pustaka jsonrepair Python atau paket npm josdejong/jsonrepair), kemudian mengimpor hasilnya ke alat ini untuk verifikasi manual dan pemformatan.

Apakah masih perlu melakukan pemformatan dan Validasi Schema setelah perbaikan?

Direkomendasikan. Perbaikan terutama menyelesaikan kesalahan pada tingkat sintaks; pemformatan dan Validasi Schema memastikan keterbacaan dan kebenaran bisnis. Output alat perbaikan terhubung mulus dengan Format JSON, Validator Schema, dan pembuat kode GeekFormat.

Apakah alat mengunggah JSON saya ke server?

Tidak. Semua parsing, perbaikan, dan pemformatan dilakukan secara lokal di browser; baik input maupun hasil antara tidak dikirim ke server mana pun. Bekerja offline, cocok untuk memproses JSON yang berisi informasi sensitif (seperti respons API lingkungan produksi, konfigurasi internal).

Bisakah strategi perbaikan yang digunakan setiap kali ditetapkan?

Alat ini secara default mengaktifkan semua aturan perbaikan umum untuk memaksimalkan tingkat keberhasilan. Jika Anda memerlukan kontrol yang lebih halus atas aturan untuk bahasa atau tim tertentu, Anda dapat menggunakan pustaka jsonrepair di lingkungan produksi Anda dan secara selektif mengaktifkan atau menonaktifkan aturan tertentu. Output alat ini juga dapat berfungsi sebagai input terstandarisasi untuk validasi selanjutnya.

Pemecahan Masalah

Error "Tidak dapat memperbaiki JSON ini"

Penyebab: teks input memiliki kerusakan struktural parah, seperti beberapa kurung hilang, literal string terpotong, atau set karakter rusak. Solusi: pertama buka file asli di editor teks biasa, konfirmasi pengkodean adalah UTF-8 tanpa BOM dan bukan biner terkompresi; jika data berasal dari respons API, hubungi hulu untuk melengkapi; untuk set data yang sangat rusak, gunakan langsung file sumber.

Field dipindahkan ke posisi yang salah setelah perbaikan

Penyebab: teks asli berisi karakter sintaks JSON (seperti //, /*, }) di dalam komentar atau literal string, menyesatkan parser; atau tingkat bersarang sangat dalam sehingga pencocokan kurung tidak tepat. Solusi: escape manual // dan /* di dalam string dengan backslash; untuk data bersarang dalam, tambahkan kurung luar sementara atau baris baru sebelum menjalankan ulang perbaikan.

Teks penjelasan dalam output AI tidak dihapus

Penyebab: output AI sering dimulai/diakhiri dengan bahasa alami (misalnya "Berikut hasilnya:") dan dapat mencakup beberapa baris. Solusi: gunakan editor teks untuk menghapus teks di luar blok JSON, hanya menyimpan konten di dalam pembungkus ```json terluar; jika alat masih tidak dapat mengenali, tambahkan { } terluar secara manual sebelum menjalankan ulang perbaikan.

Ukuran tidak berubah setelah perbaikan atau beberapa karakter diganti

Penyebab: asli berisi backslash, escape Unicode, atau entitas HTML, yang di-escape ulang oleh alat sesuai aturan JSON. Solusi: periksa apakah asli bersarang di dalam string JS; jika berada di halaman HTML, decode HTML terlebih dahulu; peningkatan jumlah karakter setelah escaping adalah normal.

Browser menampilkan "Kehabisan memori" atau halaman membeku

Penyebab: input tunggal melebihi 5–10 MB memberikan tekanan memori signifikan pada browser. Solusi: bagi data menjadi batch lebih kecil (masing-masing 1–2 MB); atau gunakan pustaka jsonrepair di sisi server untuk pemrosesan streaming; perbedaan kecil antara hasil perbaikan dan asli adalah normal.

Setelah perbaikan, Validasi Schema masih melaporkan error

Penyebab: Perbaikan JSON hanya menyelesaikan error pada tingkat sintaks; tidak memeriksa apakah nama field bisnis, tipe, atau nilai sesuai dengan Schema. Solusi: gunakan alat Validasi Schema JSON GeekFormat untuk memeriksa batasan field; temukan field spesifik berdasarkan error dan perbaiki secara manual.

Glosarium

JSON
JavaScript Object Notation, format pertukaran data ringan berbasis pasangan kunci-nilai yang didefinisikan dalam RFC 8259. Standar de facto untuk REST API, file konfigurasi, dan log.
RFC 8259
Spesifikasi JSON resmi yang diterbitkan oleh IETF, mendefinisikan sintaks ketat JSON yang valid — semua kunci harus dalam kutip ganda, hanya sekumpulan karakter terbatas dalam string yang perlu di-escape, komentar dan koma akhir tidak diizinkan.
JSON.parse
Parser JSON ketat bawaan JavaScript dan browser modern, mengikuti RFC 8259. Melempar SyntaxError langsung pada setiap kesalahan sintaks dan tidak dapat melakukan perbaikan toleran.
JSON5
Sintaks diperluas untuk JSON (non-standar), mengizinkan kunci tanpa kutip, string kutip tunggal, komentar (// dan /* */), koma akhir, angka heksadesimal, dll. Lebih mudah ditulis manusia tetapi tidak kompatibel dengan JSON.parse.
JSONC
JSON with Comments, nama umum yang digunakan oleh editor seperti VS Code untuk file konfigurasi JSON dengan komentar (seperti tsconfig.json). Sebenarnya alias umum untuk JSON5.
Trailing Comma / Koma Akhir
Koma tambahan setelah elemen terakhir dari objek atau array. Diizinkan dalam JavaScript tetapi dilarang oleh standar JSON — kesalahan sintaks paling umum dari output LLM dan salinan console.log().
Blok Kode Markdown
Potongan kode yang dibungkus dalam tiga backtick (```). LLM sering secara otomatis membungkus output JSON dalam ```json ... ```; menempelkannya langsung ke JSON.parse() akan gagal.
Tolerant Parser / Parser Toleran
Parser yang dapat mencoba memulihkan dan melanjutkan parsing saat menemui kesalahan sintaks. Mesin inti alat Perbaikan JSON, berbeda dari JSON.parse ketat.
SyntaxError
Eksepsi kesalahan sintaks yang dilempar oleh JavaScript. Setiap parser JSON ketat melempar ini saat menerima input yang tidak sesuai RFC 8259.
Canonical JSON / JSON Kanonik
JSON yang dihasilkan ulang melalui parse + stringify, dengan urutan kunci stabil, tanpa spasi berlebih, dan 100% kompatibel dengan parser standar. Format output akhir alat Perbaikan JSON.

Jenis Kesalahan Perbaikan JSON Umum dengan Contoh

Kategori KesalahanSebelumSesudahMetode Perbaikan
Koma akhir{ "a": 1, }{ "a": 1 }Hapus koma setelah elemen terakhir
Kutip tunggal{ 'a': 1 }{ "a": 1 }Ganti semua kutip tunggal dengan kutip ganda
Kunci tanpa kutip{ a: 1 }{ "a": 1 }Tambahkan kutip ganda pada nama kunci
Komentar baris{ // komentar "a": 1 }{ "a": 1 }Hapus seluruh baris komentar //
Komentar blok{ /* blok */ "a": 1 }{ "a": 1 }Hapus komentar blok /* */
Pembungkus Markdown```json { "a": 1 } ```{ "a": 1 }Hapus pembungkus ```json dan ```
String tidak tertutup{ "a": "hello }{ "a": "hello" }Tambahkan kutip penutup string yang hilang
Kurung hilang{ "a": 1{ "a": 1 }Cocokkan tumpukan untuk menambahkan kurung kurawal/siku penutup yang hilang

Perbaikan JSON vs Format JSON vs Validasi Schema JSON

AlatApa yang diselesaikanPersyaratan inputMode kegagalan
Perbaikan JSONMengonversi JSON dengan kesalahan sintaks menjadi JSON validToleran, menerima JSON non-standarError ketika terlalu rusak untuk menebak struktur
Format JSONMemformat ulang JSON yang sudah validHarus sudah menjadi JSON validSyntaxError dilempar langsung
Kompresi JSONHapus spasi, kurangi ukuranHarus sudah menjadi JSON validSyntaxError dilempar langsung
Validasi Schema JSONPeriksa tipe/nilai field terhadap aturan bisnisHarus sudah menjadi JSON validDaftar aturan yang dilanggar setiap field
JSON Merge / SortPenggabungan multi-sumber / pengurutan kunciHarus sudah menjadi JSON validSyntaxError dilempar langsung

Authoritative References