Skip to content
Escape / Unescape JSON
Tools

Escape / Unescape JSON

Baru

Escape teks mentah menjadi string aman-JSON dan unescape kembali.

Options
0 input chars 0 output chars 0 output bytes

Runs entirely in your browser. Nothing is uploaded.

JSON escape dan unescape online — gratis, privat, instan

Tool JSON escape ini mengubah teks apa pun menjadi string yang aman untuk JSON dan mengubah string yang di-escape kembali menjadi teks biasa — kedua arah dalam satu tempat, instan, dan sepenuhnya di browser Anda. Tempelkan konten Anda, pilih Escape atau Unescape, lalu salin hasilnya. Tidak ada yang perlu diinstal, tidak ada yang perlu didaftarkan. Karena setiap konversi berjalan lokal, data Anda tidak pernah meninggalkan perangkat — aman untuk payload API, access token, kata sandi, dan teks rahasia apa pun yang Anda tidak ingin unggah ke server.

Ini adalah cara tercepat untuk meng-escape sebuah string JSON untuk payload API, memasukkan potongan multi-baris ke file konfigurasi, atau memulihkan teks asli dari nilai yang di-escape yang Anda temukan di log. Konversi memakai mesin JSON native browser — bukan regex buatan tangan — sehingga hasilnya sama dengan yang dihasilkan JSON.stringify di JavaScript dan yang diharapkan oleh setiap parser yang sesuai spesifikasi di Python, Go, Java, dan Ruby.

Apa yang perlu di-escape dalam JSON — dan apa yang tidak

Hanya sekumpulan kecil karakter yang punya makna khusus di dalam string JSON. Tanda kutip ganda " harus menjadi \", backslash \ harus menjadi \\, dan karakter kontrol whitespace menjadi \b, \f, \n, \r dan \t. Karakter kontrol lain di bawah U+0020 ditulis sebagai escape \uXXXX. Selebihnya — huruf, angka, tanda kutip tunggal, hyphen, dan tanda baca biasa — dilewatkan tanpa disentuh. Ini sumber kebingungan yang umum: tanda kutip tunggal tidak perlu di-escape dalam JSON karena string JSON memakai tanda kutip ganda sebagai pembatas, bukan tanda kutip tunggal.

Salah menerapkan salah satu aturan ini adalah alasan JSON gagal diparsing. Tanda kutip ganda yang tidak di-escape mengakhiri string terlalu awal, menyebabkan error "Unexpected token". Backslash tunggal dibaca sebagai awal urutan escape — jika karakter berikutnya bukan karakter escape yang valid, parsing gagal. Newline literal di dalam string sama sekali tidak diperbolehkan oleh spesifikasi. Tempelkan nilai yang rusak itu ke mode Escape dan tool ini mengembalikan versi yang di-escape dengan benar dalam waktu kurang dari satu detik.

Escape, unescape, stringify — apa yang dilakukan tiap mode

Mode Escape mengkodekan teks Anda agar bisa berada di dalam string JSON. Secara default Anda mendapat isi yang sudah di-escape saja, siap ditempel di antara tanda kutip Anda sendiri; aktifkan Bungkus dalam kutip dan Anda mendapat nilai string JSON berkutip yang lengkap — persis seperti yang dihasilkan JSON.stringify(). Itulah perbedaan antara escaping (mengkodekan karakter khusus) dan stringifying (mengkodekan sekaligus membungkus dengan tanda kutip). Keduanya menghasilkan output yang diterima oleh setiap parser JSON standar.

Mode Unescape melakukan kebalikannya, menerjemahkan \", \\, \n, \t dan \uXXXX kembali menjadi karakter yang diwakilinya. Ia menerima input dengan atau tanpa tanda kutip di sekelilingnya dan melaporkan error yang jelas untuk escape yang cacat. Tombol Swap membalik output menjadi input di bawah mode yang berlawanan, sehingga round-trip hanya satu klik — escape sesuatu, verifikasi hasilnya, swap, dan pastikan Anda mendapat kembali teks aslinya.

Unicode, backslash, path Windows, dan output aman-HTML

JSON menyimpan Unicode sebagai UTF-8 mentah secara default, tapi terkadang Anda butuh ASCII murni. Aktifkan Escape non-ASCII (\uXXXX) dan setiap huruf beraksen atau emoji menjadi urutan \uXXXXé menjadi \u00e9 dan 😀 menjadi surrogate pair \ud83d\ude00. Ini menjaga parser lama dan file konfigurasi khusus ASCII tetap berfungsi dengan benar tanpa kehilangan data.

Untuk path file Windows dan pola regex, penggandaan backslash berjalan otomatis: tempelkan C:\Users\me dan tool ini mengeluarkan C:\\Users\\me. Untuk penyisipan HTML, opsi Escape garis miring menulis ulang / menjadi \/ sehingga tag penutup script di dalam nilai string tidak bisa keluar dari HTML di sekelilingnya — tetap JSON valid yang diparsing identik, tapi aman disisipkan di halaman yang dirender server. Tool seperti JSONLint bisa memastikan output yang di-escape itu valid sebelum Anda men-deploy-nya.

Bagaimana perbandingannya dengan JSONLint, jsonformatter.org, VS Code, dan tool server-side

JSONLint memvalidasi apakah sebuah dokumen JSON lengkap terbentuk dengan benar. jsonformatter.org melakukan pretty-print JSON agar mudah dibaca. VS Code dengan formatter bawaannya menangani indentasi dan syntax highlighting tapi tidak meng-escape atau unescape nilai string individual. Tidak satu pun dari ini mengisi celah yang ditutup tool ini: memperbaiki satu string yang mengandung karakter khusus. Gunakan jsonformatter.org untuk memformat; JSONLint untuk memvalidasi; VS Code untuk bekerja dengan file lengkap Anda; tool ini untuk memperbaiki nilai string yang merusak parser.

Tool JSON escape server-side memang ada tapi punya trade-off: teks Anda meninggalkan perangkat. Jika Anda bekerja dengan API key, kata sandi, konfigurasi rahasia, atau data pengguna, mengirim itu ke server eksternal adalah risiko yang tidak perlu. Tool ini memproses semuanya di sisi klien — tidak ada yang diunggah, dicatat, atau disimpan. Ia bekerja offline setelah dimuat, sehingga Anda bisa memakainya tanpa koneksi jaringan apa pun. Tanpa akun untuk dibuat, tanpa batas rate, tanpa batas ukuran file.

Spesifikasi JSON: RFC 8259 dan aturan yang ditetapkannya

JSON diformalkan oleh Douglas Crockford pada awal 2000-an dan pertama kali dibakukan sebagai RFC 4627 pada 2006. Ia direvisi oleh RFC 7159 pada 2013 dan kemudian oleh RFC 8259 pada 2017, yang merupakan standar otoritatif saat ini. Spesifikasi ini mendefinisikan tepat enam tipe nilai: object (kumpulan pasangan key–value yang tidak berurutan), array (urutan berurutan), number, string, boolean (literal true dan false), dan null. Setiap parser JSON yang sesuai spesifikasi di setiap bahasa pemrograman dibangun di sekitar keenam tipe ini — tidak lebih, tidak kurang.

Aturan string JSON di bawah RFC 8259 tegas dan tidak bisa ditawar. String harus dibatasi oleh tanda kutip ganda — tanda kutip tunggal adalah error sintaks, bukan alternatif. Karakter kontrol di rentang U+0000 hingga U+001F — termasuk tab, newline, carriage return, dan backspace — tidak boleh muncul secara literal di dalam string; mereka harus direpresentasikan sebagai urutan escape. RFC 8259 menetapkan tepat tujuh urutan escape wajib: \" untuk tanda kutip ganda, \\ untuk backslash, \/ untuk garis miring (opsional tapi diperbolehkan), \b untuk backspace, \f untuk form feed, \n untuk newline, \r untuk carriage return, dan \t untuk tab. Kode poin Unicode apa pun juga bisa dikodekan sebagai \uXXXX memakai empat digit heksadesimal; karakter di luar Basic Multilingual Plane memakai surrogate pair UTF-16 yang ditulis sebagai dua urutan \uXXXX berturut-turut.

Satu klarifikasi penting dari RFC 8259: teks JSON yang dipertukarkan antar sistem yang bukan bagian dari ekosistem tertutup harus dikodekan dalam UTF-8. BOM (byte order mark, U+FEFF) tidak boleh muncul di awal teks JSON. Persyaratan ini menutup banyak ambiguitas historis seputar encoding karakter yang dulu menyebabkan masalah interoperabilitas di tahun-tahun antara RFC 4627 dan RFC 8259. Saat sebuah parser JSON melaporkan error encoding karakter alih-alih error parsing, biasanya ia sedang menolak input yang melanggar mandat UTF-8 ini.

JSON vs literal objek JavaScript: sintaks mirip, aturan berbeda

Kesalahpahaman paling umum tentang JSON adalah menganggapnya sama dengan JavaScript. Padahal tidak. JSON adalah format pertukaran data yang independen dari bahasa apa pun yang kebetulan berbagi sintaks permukaan dengan literal objek JavaScript — tapi keduanya punya perbedaan yang berarti. Dalam JSON, semua key dan semua nilai string harus memakai tanda kutip ganda. Literal objek JavaScript mengizinkan key tanpa kutip ({ foo: 1 }) dan string berkutip tunggal ('hello'); keduanya adalah error sintaks dalam JSON. JSON tidak mengizinkan koma berlebih setelah elemen terakhir dalam array atau objek — [1, 2, 3,] adalah JSON yang tidak valid meskipun mesin JavaScript modern menerimanya. JSON tidak mendukung komentar dalam bentuk apa pun, meskipun komentar adalah JavaScript yang sah. Ini sering menjebak developer yang mencoba memberi anotasi pada file konfigurasi dengan // atau /* */.

JSON juga tidak punya representasi untuk beberapa primitif JavaScript. Nilai undefined tidak ada dalam JSON — JSON.stringify() menghilangkan properti objek yang nilainya undefined alih-alih mensrialisasinya. Nilai numerik khusus Infinity, -Infinity, dan NaN tidak bisa direpresentasikan dalam JSON; JSON.stringify() mengubahnya menjadi null. Objek Date disrialisasi menjadi representasi string ISO 8601-nya (misalnya, "2024-01-15T09:30:00.000Z") — parser yang membacanya kembali menerima string, bukan Date, kecuali fungsi reviver merekonstruksi objek itu. Konversi diam-diam ini adalah sumber umum bug kehilangan data halus saat developer mengasumsikan JSON adalah format round-trip yang lossless untuk semua nilai JavaScript.

Kesenjangan antara sintaks JSON dan JavaScript inilah tepatnya yang membuat JSONC (JSON with Comments) diperkenalkan. VS Code memakai JSONC untuk settings.json, launch.json, tasks.json, dan tsconfig.json-nya, memproses awal untuk menghilangkan komentar sebelum mengurai sisanya sebagai JSON standar. JSONC bukan standar resmi — ia adalah ekstensi pragmatis untuk file konfigurasi yang diedit manusia di mana kemampuan memberi anotasi lebih penting daripada interoperabilitas ketat.

JSON5, HJSON, TOML, dan YAML: saat JSON tidak cukup

Ketegasan yang membuat JSON ideal untuk pertukaran data mesin-ke-mesin membuatnya melelahkan untuk file konfigurasi yang ditulis manusia. Beberapa format muncul untuk mengatasi ini. JSON5 (2012) adalah ekstensi paling konservatif: ia menambahkan string berkutip tunggal, key objek tanpa kutip, koma berlebih, komentar gaya-C (// dan /* */), literal angka heksadesimal (0xFF), dan string multi-baris memakai kelanjutan backslash. JSON5 adalah superset dari JSON — semua JSON valid adalah JSON5 valid — dan dipakai di beberapa file konfigurasi Babel dan ESLint. HJSON (Human JSON) melangkah lebih jauh, menambahkan string multi-baris tanpa urutan escape dan komentar gaya-hash, dan dipakai di beberapa ekosistem tooling CLI.

TOML (Tom's Obvious Minimal Language) memakai pendekatan yang sama sekali berbeda, memakai sintaks mirip-INI yang sama sekali tidak berhubungan dengan JSON. TOML unggul dalam konfigurasi hierarkis dan menjadi format di balik Cargo.toml Rust dan pyproject.toml Python. YAML menempati posisi berbeda: YAML 1.2 adalah superset dari JSON, artinya setiap dokumen JSON valid adalah YAML valid, tapi YAML memperluas JSON dengan anchor, alias, block scalar, dan type tag. YAML banyak dipakai dalam pipeline CI/CD (GitHub Actions, GitLab CI) dan manifest Kubernetes. Trade-off di semua format ini konsisten: JSON adalah format paling sederhana untuk diparsing dengan benar — grammar-nya muat dalam satu halaman — inilah sebabnya ia mendominasi API dan pertukaran data, sementara TOML dan YAML unggul untuk file konfigurasi yang ditulis dan dipelihara manusia.

Untuk keperluan escaping, hanya JSON itu sendiri yang penting — JSON5, HJSON, TOML, dan YAML semuanya punya aturan escaping string sendiri yang sebagian tumpang tindih dengan JSON tapi berbeda dalam hal-hal penting. String yang di-escape dengan benar untuk JSON akan diparsing dengan benar di parser JSON5 mana pun, tapi kebalikannya tidak berlaku. Saat membangun API, pipeline log, atau komunikasi antar-layanan, selalu targetkan JSON ketat (RFC 8259) alih-alih format superset apa pun, dan gunakan tool atau fungsi library untuk menangani escaping alih-alih melakukannya secara manual.

Parsing dan serialisasi JSON: JavaScript, Python, dan jebakan presisi integer

Setiap bahasa besar menyediakan library JSON. Di JavaScript, JSON.stringify(value, replacer, space) mensrialisasi sebuah nilai menjadi string JSON. Argumen opsional replacer adalah array nama properti untuk disertakan atau fungsi yang bisa mentransformasi nilai selama serialisasi — berguna untuk menyaring field sensitif atau mengonversi tipe yang tidak bisa disrialisasi. Argumen space mengatur pretty-printing: masukkan angka untuk sejumlah spasi indentasi, atau string (umumnya "\t") untuk memakai tab. JSON.parse(text, reviver) mengurai string JSON kembali menjadi nilai JavaScript. Fungsi opsional reviver menerima setiap pasangan key–value selama parsing dan bisa mentransformasi nilai — kasus penggunaan umum adalah merekonstruksi objek Date dari string ISO 8601. Di Python, fungsi setaranya adalah json.dumps() dan json.loads(). json.dumps() menerima indent untuk pretty-printing, ensure_ascii=False agar karakter non-ASCII muncul apa adanya alih-alih sebagai escape \uXXXX, dan fungsi default untuk mensrialisasi tipe kustom yang tidak diketahui library.

Edge case terkenal yang mengejutkan sistem produksi besar adalah masalah presisi integer. Spesifikasi JSON tidak menetapkan batas atas untuk ukuran angka, tapi JavaScript merepresentasikan semua angka sebagai nilai floating-point presisi ganda IEEE 754, yang hanya bisa merepresentasikan integer secara tepat hingga 253 − 1 (9.007.199.254.740.991). Di atas batas itu, integer berurutan memetakan ke float yang sama dan menjadi tidak bisa dibedakan. ID tweet Twitter melampaui ambang ini seiring platform tumbuh, menyebabkan klien JavaScript diam-diam merusak ID saat mengurai respons API — tweet dengan satu ID diperlakukan sebagai tweet berbeda. Perbaikan Twitter adalah mengirim id_str (representasi string) berdampingan dengan field numerik id. JavaScript modern mengatasi ini dengan BigInt, tapi JSON.parse() masih belum menangani integer besar sebagai BigInt secara otomatis — solusinya termasuk memakai reviver kustom atau library pihak ketiga seperti json-bigint.

JSON Schema (saat ini di draft 2020-12) memperluas JSON dengan lapisan meta untuk memvalidasi struktur dokumen. Sebuah dokumen JSON Schema menentukan batasan tipe, field wajib, rentang numerik, pola string, dan nilai enum yang diizinkan memakai JSON itu sendiri sebagai bahasa skema. OpenAPI/Swagger memakai JSON Schema untuk mendefinisikan bentuk body request dan response API. Validator JavaScript yang paling banyak dipakai adalah ajv (Another JSON Validator), yang menggerakkan tool mulai dari webpack hingga ESLint. Di dalam sebuah skema, $ref memungkinkan penggunaan kembali definisi umum, sementara oneOf, anyOf, dan allOf memodelkan tipe union dan intersection. Validasi JSON Schema adalah validasi runtime — ia menangkap error bentuk data di payload produksi. Type checking TypeScript adalah validasi compile-time — ia menangkap error bentuk di kode sumber. Keduanya saling melengkapi: tipe TypeScript menjaga kode Anda benar; JSON Schema menjaga data API yang masuk tetap benar.

Frequently asked questions

Apa itu JSON escaping?

JSON escaping mengganti karakter yang bisa merusak sebuah string JSON dengan urutan escape backslash, sehingga teks bisa berada dengan aman di dalam nilai JSON. Misalnya, teks He said "hi" menjadi He said \"hi\" setelah tanda kutip gandanya di-escape. Escaping tidak pernah mengubah makna teks — ia hanya mengkodekan karakter yang direservasi oleh JSON. Tanpa escaping, tanda kutip ganda di dalam nilai string akan mengakhiri string terlalu awal, menyebabkan error parsing di setiap bahasa mulai dari JavaScript, Python, hingga Go.

Bagaimana cara meng-escape string untuk JSON?

Tempelkan teks Anda ke kotak input dengan mode Escape terpilih dan versi JSON-safe-nya langsung muncul di panel output — lalu klik Copy. Tool ini meng-escape tanda kutip ganda, backslash, newline, tab, dan karakter kontrol untuk Anda. Aktifkan "Bungkus dalam kutip" jika Anda ingin nilai string JSON yang lengkap dan siap ditempel, bukan hanya isi yang di-escape saja. Tanpa panggilan API, tanpa round-trip ke server — konversi berjalan di browser Anda memakai mesin JSON native JavaScript.

Karakter apa saja yang perlu di-escape dalam JSON?

Di dalam string JSON Anda harus meng-escape tanda kutip ganda " menjadi \", backslash \ menjadi \\, dan karakter kontrol whitespace: backspace \b, form feed \f, newline \n, carriage return \r dan tab \t. Karakter kontrol lain di rentang U+0000–U+001F harus ditulis sebagai \uXXXX. Garis miring / boleh di-escape sebagai \/, tapi tidak wajib. Huruf, angka, dan tanda baca biasa — termasuk tanda kutip tunggal — dilewatkan tanpa perubahan.

Bagaimana cara meng-escape tanda kutip ganda dalam JSON?

Taruh backslash sebelum setiap tanda kutip ganda, mengubah " menjadi \". Jadi nilai John "JD" Doe menjadi "John \"JD\" Doe" di dalam JSON. Meng-escape tanda kutip di dalamnya mencegahnya mengakhiri string sebelum waktunya, yang merupakan penyebab paling umum dari error "invalid JSON". Ini juga masalah paling sering terjadi saat menyisipkan teks dari pengguna ke dalam payload JSON API atau file konfigurasi — satu tanda kutip yang lupa di-escape merusak seluruh dokumen.

Bagaimana cara meng-escape backslash dalam JSON?

Gandakan: satu backslash \ menjadi \\. Ini paling penting untuk path file Windows dan regex. Path C:\Users\me\notes.txt harus ditulis sebagai "C:\\Users\\me\\notes.txt" dalam JSON, jika tidak \U dan \n akan dibaca sebagai urutan escape, bukan karakter literal. Tool ini menangani penggandaan itu secara otomatis — tempel path-nya dan hasilnya langsung siap dipakai.

Bagaimana cara unescape sebuah string JSON?

Beralih ke mode Unescape dan tempelkan string yang sudah di-escape (dengan atau tanpa tanda kutip di sekelilingnya). Tool ini mengubah setiap urutan escape kembali menjadi karakter yang diwakilinya, sehingga Line 1\nLine 2 menjadi dua baris nyata dan \u00e9 menjadi é. Ini kebalikan persis dari mode Escape — gunakan tombol Swap untuk membalik antara keduanya. Berguna saat Anda menyalin string yang sudah di-escape dari file log atau respons API dan ingin membaca teks aslinya.

Apakah tanda kutip tunggal perlu di-escape dalam JSON?

Tidak. String JSON selalu dibatasi oleh tanda kutip ganda, jadi tanda kutip tunggal (apostrof) hanyalah karakter biasa — It's fine tetap It's fine, tanpa perlu backslash. Hanya tanda kutip ganda " dan backslash \ (ditambah karakter kontrol) yang pernah membutuhkan escape. Ini titik kebingungan umum bagi developer yang datang dari bahasa seperti Python atau shell scripting, di mana tanda kutip tunggal dan ganda bisa saling menggantikan.

Apa bedanya escaping dan stringifying?

Escaping mengkodekan karakter khusus di dalam teks; stringifying melakukan itu sekaligus membungkus hasilnya dengan tanda kutip ganda untuk menghasilkan nilai string JSON yang lengkap. Ambil teks She said "hi": escaping menghasilkan isi She said \"hi\", sementara stringifying menghasilkan nilai lengkap "She said \"hi\"". Toggle "Bungkus dalam kutip" beralih antara keduanya — nonaktif berarti hanya isinya, aktif berarti string berkutip lengkap (persis seperti yang dihasilkan JSON.stringify di JavaScript).

Bagaimana cara meng-escape newline dan tab?

Baris baru menjadi \n (newline) atau \r (carriage return), dan tab menjadi \t. Jadi catatan dua baris yang diketik sebagai "Line 1 ⏎ Line 2" di-escape menjadi Line 1\nLine 2 dalam satu baris — yang merupakan satu-satunya cara sebuah nilai multi-baris bisa berada di dalam string JSON, karena baris baru sungguhan tidak diperbolehkan di situ oleh spesifikasi JSON. Ini penyebab kedua paling umum dari error parsing JSON setelah tanda kutip ganda yang tidak di-escape.

Bagaimana Unicode di-escape dalam JSON?

JSON mengizinkan UTF-8 mentah, jadi é bisa muncul apa adanya, tapi juga bisa di-escape sebagai \u00e9 — backslash, huruf u, dan empat digit hex. Karakter di luar Basic Multilingual Plane memakai surrogate pair: emoji 😀 menjadi \ud83d\ude00. Aktifkan "Escape non-ASCII (\uXXXX)" untuk memaksa setiap karakter non-ASCII menjadi bentuk \uXXXX, yang berguna untuk file konfigurasi khusus ASCII dan parser lama yang tidak menangani UTF-8 multi-byte dengan benar.

Apakah aman meng-escape JSON secara online?

Ya. Tool ini 100% berjalan di sisi klien — semua escaping dan unescaping berlangsung di browser Anda memakai JavaScript, dan tidak ada yang Anda tempelkan yang pernah diunggah, dicatat, atau dikirim ke server. Ini membuatnya aman untuk payload API, token, konfigurasi, dan teks sensitif lainnya. Sebagai perbandingan, sebagian tool JSON online mengirim input Anda ke server untuk diproses. Tool ini tidak — tutup tab-nya dan tidak ada rekam jejak bahwa Anda pernah memakainya.

Kenapa JSON saya tidak valid?

Penyebab paling umum sejauh ini adalah tanda kutip ganda atau backslash yang tidak di-escape di dalam nilai string, atau baris baru sungguhan di tempat yang seharusnya \n. Perbaiki dengan meng-escape: " → \", \ → \\, dan baris baru → \n. Tempelkan nilai yang bermasalah ke mode Escape dan ia akan menghasilkan versi yang di-escape dengan benar dan valid, siap Anda pakai kembali. Tool seperti JSONLint bisa memastikan JSON Anda valid setelah di-escape.

Bisakah saya memakai ini untuk menyisipkan JSON ke dalam halaman HTML?

Bisa. Saat Anda menyisipkan JSON di dalam blok script HTML, urutan tag penutup yang tidak sengaja di salah satu nilai string Anda bisa mengakhiri script lebih awal dan merusak halaman. Aktifkan "Escape garis miring (\/)" dan setiap / menjadi \/, sehingga tag penutup script ditulis sebagai <\/script> — tetap JSON valid yang diparsing identik, tapi aman disisipkan langsung di HTML. Ini kekhawatiran nyata di produksi untuk halaman yang dirender di server dan meneruskan data secara inline.

Bagaimana perbandingannya dengan JSONLint, jsonformatter.org, dan VS Code?

JSONLint memvalidasi apakah sebuah dokumen JSON lengkap terbentuk dengan benar — ia memeriksa seluruh struktur. jsonformatter.org memformat JSON agar mudah dibaca. Formatter JSON bawaan VS Code menangani pretty-print tapi tidak meng-escape nilai string satu per satu. Tool ini melakukan hal berbeda: meng-escape atau unescape isi dari nilai string individual, yang Anda butuhkan saat membangun JSON secara terprogram atau men-debug kenapa suatu string tertentu merusak parser. Gunakan jsonformatter.org untuk pretty-print; gunakan JSONLint untuk validasi; gunakan tool ini untuk memperbaiki nilai string yang mengandung karakter khusus. Ketiganya saling melengkapi dan tidak ada yang menggantikan yang lain.