Dibangun dengan AI canggih di perangkat Anda dan akselerasi perangkat keras untuk performa profesional dengan privasi tanpa kompromi.AI di perangkat — profesional dan privat.
Escape Unescape String JSON
Ubah teks menjadi literal string JSON, atau dekode satu.
- Tidak ada yang diunggah
- Lapisan bersarang dikupas
- Bolak-balik persis
- Kesalahan dengan baris dan kolom
Jatuhkan berkas teks di sini
.json · .txt · .log · .ndjson · .jsonl dan lainnya · sampai 10.0 MB di versi gratis
Keempatnya menghasilkan JSON yang sah. Nyalakan satu ketika tujuan literalnya memang peduli.
Gratis: 1 berkas sampai 10.0 MB. Pro: 1 berkas, sesuai perangkat.
Apa yang dilakukan alat escape dan unescape JSON ini
Escape mengubah teks apa pun menjadi string JSON yang sah: dibungkus kutipan ganda, dengan kutipan, baris baru, tab, backslash, dan karakter kontrol yang sudah di-escape. Unescape melakukan kebalikannya — tempel string JSON dan dapatkan teks biasanya kembali. Tempel, pilih berkas, atau seret satu ke sini. Jika Unescape tidak dapat membaca masukannya, alat ini menyebut aturan yang dilanggar dan menunjukkan letaknya.
- Escape — Membungkus teks Anda dengan kutipan ganda dan meng-escape kutipan, baris baru, tab, backslash, serta karakter kontrol, sehingga hasilnya adalah literal string JSON yang sah bagi parser mana pun.
- Unescape — Membaca string JSON seperti "a\nb" dan mengembalikan string aslinya. Badan telanjang tanpa kutipan juga bisa — itulah yang Anda dapat saat menyalin nilai dari berkas JSON.
- Tempel, unggah, atau seret — Tempel dari papan klip, gunakan pemilih berkas, atau seret berkas ke area jatuh. Berkas UTF-8 dan UTF-16 dikenali dari tanda urutan bita-nya, sehingga berkas hasil ekspor PowerShell terbaca benar alih-alih datang sebagai karakter kacau.
- Tukar dan mulai lagi — Tukar mengirim hasil kembali ke masukan dan membalik arahnya, jadi satu putaran bolak-balik cukup satu tekan. Mulai lagi mengosongkan daftar, hasil, dan pemilih berkas sekaligus.
Escape atau unescape: mana yang Anda perlukan
Saat Anda menyisipkan teks berbaris banyak atau masukan pengguna ke dalam JSON atau kode sumber, teks itu harus di-escape dengan benar, atau sebuah kutipan atau baris baru akan merusak sintaks di sekitarnya. Escape memberi Anda literal persis untuk ditempel. Ketika Anda sudah punya string ter-escape — dari respons API, agregator log, berkas konfigurasi — dan ingin membaca teks aslinya, Unescape membalikkannya. Kedua arah berjalan seketika dan tetap bekerja tanpa koneksi setelah halaman termuat.
- Menulis konfigurasi atau fixture — Anda punya sertifikat, pernyataan SQL, atau templat berbaris banyak yang harus menjadi satu nilai JSON. Escape saja, dan baris barunya menjadi \n alih-alih merusak berkas.
- Membaca baris log — Log terstruktur menserialkan pesannya, dan sering kali seluruh peristiwanya sekali lagi. Unescape, dan jejak tumpukannya kembali menjadi baris yang terbaca alih-alih sederet \n dan \".
- Menelusuri respons API — Ruas yang datang sebagai string berisi JSON adalah muatan berkode ganda. Unescape sekali untuk mendapatkan dokumen di dalamnya, lalu kirim ke Formatter JSON.
- Menempel ke kode sumber — Literal yang akan masuk ke JavaScript, Python, atau Go butuh kutipan dan backslash yang di-escape. Escape tanpa kutipan luar, lalu tempel badannya di antara kutipan yang sudah ada.
Semua karakter yang di-escape JSON
Tata bahasa JSON mewajibkan tepat dua karakter di-escape di dalam string — kutipan ganda dan backslash — ditambah setiap karakter kontrol di bawah U+0020. Tujuh di antaranya punya bentuk pendek dua karakter; sisanya memakai urutan \u00XX. Ini daftar lengkapnya, dan itulah persis yang dihasilkan alat ini.
| Karakter | Di-escape menjadi | Catatan |
|---|---|---|
| Kutipan ganda " | \" | Wajib. Jika tidak, string berakhir di situ. |
| Backslash \ | \\ | Wajib. Jika tidak, ia memulai sebuah escape. |
| Baris baru U+000A | \n | Wajib. Baris baru sungguhan tidak sah di dalam string JSON. |
| Carriage return U+000D | \r | Wajib. |
| Tab U+0009 | \t | Wajib. |
| Backspace U+0008 | \b | Wajib. |
| Form feed U+000C | \f | Wajib. |
| Kontrol lain U+0000 sampai U+001F | \u0000 sampai \u001f | Wajib. Tidak ada bentuk pendeknya. |
| Surrogate tunggal U+D800 sampai U+DFFF | \u + D800 sampai DFFF | Di sini selalu di-escape. Tanpa pengodean UTF-8, membiarkannya mentah membuat karakternya hilang saat disimpan. |
| Garis miring / | \/ | Opsional. Nyalakan ketika literalnya masuk ke blok skrip HTML. |
| Non-ASCII di atas U+007F | \u00e9, dan 😀 sebagai pasangan D83D DE00 | Opsional. Nyalakan untuk jalur khusus ASCII. Karakter di luar bidang dasar menjadi sepasang escape. |
| Pemisah baris U+2028, U+2029 | \u2028, \u2029 | Opsional. Sah tanpa escape di JSON, dan galat sintaks di JavaScript sebelum ES2019. |
| Delete U+007F | tidak di-escape | JSON tidak mewajibkannya, jadi dibiarkan apa adanya. Menyalakan escape non-ASCII pun tidak mengubahnya — ia karakter ASCII. |
Satu akibatnya perlu ditegaskan: escape dan unescape adalah kebalikan yang persis. Dengan kombinasi opsi apa pun, meng-unescape hasilnya mengembalikan teks awal karakter demi karakter, termasuk spasi di kedua ujungnya.
String bersarang dan ber-escape ganda
Alasan paling umum sebuah unescape tampak tidak bekerja adalah nilainya di-escape lebih dari sekali. Setiap putaran serialisasi menggandakan backslash-nya, jadi pesan yang semula berupa baris baru menjadi \n, lalu \\n, lalu \\\\n. Satu proses mengupas satu lapisan, dan sisanya masih tampak ter-escape.
- Biarkan kedalaman pada Otomatis — Alat ini terus mengupas selama hasilnya masih berupa string JSON berkutip, hingga sepuluh lapisan, lalu berhenti. Ia menyebut berapa lapisan yang terkupas, jadi Anda selalu tahu apa yang terjadi.
- Tetapkan kedalaman persis untuk berhenti di tengah — Pilih 1, 2, atau angka berapa pun sampai 10 untuk mengupas tepat sekian lapisan. Berguna ketika nilai di dalamnya adalah dokumen yang ingin Anda serahkan ke Formatter JSON alih-alih diurai lebih jauh.
- Uji kupasnya sengaja dibuat ketat — Sebuah lapisan hanya dikupas jika sisanya benar-benar string JSON berkutip yang bisa diurai. Teks biasa yang kebetulan menyebut \n tidak pernah dikupas, jadi alat ini tidak mungkin merusak teks yang memang selalu polos.
- Perhatikan hitungan lapisannya — Jika lapisan yang dilaporkan lebih sedikit dari perkiraan dan hasilnya masih memuat escape, sisanya memang tidak pernah sah — biasanya baris log yang disunting tangan dengan backslash nyasar. Jalankan Escape pada hasilnya untuk melihat persis di mana ia berhenti masuk akal.
Opsi sekilas
- Bungkus hasil dengan kutipan — Menyala secara bawaan. Hasilnya adalah literal string JSON yang lengkap, siap ditempel sebagai nilai. Matikan untuk mendapat badannya saja, untuk ditempel di antara kutipan yang sudah ada di kode Anda.
- Escape non-ASCII menjadi \uXXXX — Mati secara bawaan. Setiap karakter di atas U+007F menjadi \uXXXX, jadi literalnya murni ASCII. Emoji dan karakter lain di luar bidang dasar menjadi dua escape, persis yang diharapkan parser.
- Escape garis miring — Mati secara bawaan. Menulis / sebagai \/, yang tetap JSON sah dan mencegah tag penutup di dalam string menutup blok skrip HTML terlalu awal.
- Escape pemisah baris — Mati secara bawaan, dan tidak tersedia selama escape non-ASCII menyala karena sudah tercakup. Menulis U+2028 dan U+2029 sebagai escape agar literalnya aman ditempel ke kode JavaScript.
- Kedalaman unescape — Otomatis secara bawaan. Menentukan berapa lapisan sarang yang dikupas. Lihat bagian di atas.
- Hitungan dan rasio — Setiap hasil menampilkan karakter masuk dan keluar, bita masuk dan keluar, serta rasio pertumbuhan — angka yang menentukan ketika nilainya harus muat di sebuah kolom atau batas muatan.
Arti setiap pesan kesalahan
Ketika Unescape menolak, ia menyebut aturan yang dilanggar dan memberi baris serta kolom, yang kami hitung dari posisi di teks Anda alih-alih dibaca dari pesan bahasa Inggris milik parser. Karena itulah pesannya dalam bahasa Anda dan posisi yang ditunjuk benar di semua bahasa.
| Pesan | Kapan terjadi | Apa yang harus dilakukan |
|---|---|---|
| String tidak pernah ditutup | Teksnya punya kutipan pembuka tanpa pasangan penutup — biasanya nilai yang terpotong batas log atau salinan yang tidak lengkap. | Tambahkan kutipan penutupnya, atau tempel nilainya secara utuh. |
| Urutan escape tidak dikenal | Sebuah backslash diikuti karakter yang tidak didefinisikan JSON, seperti \q atau jalur Windows yang ditempel tanpa menggandakan pemisahnya. | Gandakan backslash-nya, atau jalankan Escape pada teks aslinya untuk menghasilkan literal yang benar. |
| Escape \u tidak lengkap | Sebuah \u tidak diikuti tepat empat digit heksadesimal. | Lengkapi keempat digitnya. \u12 bukan escape yang sah; \u0012 sah. |
| Karakter kontrol mentah | Ada baris baru atau tab sungguhan di dalam string alih-alih \n atau \t. Ini kegagalan paling umum ketika sebuah nilai ditempel dari terminal. | Jalankan Escape pada teks itu — memang untuk itulah ia ada. |
| Ada isi tambahan setelah string | Dua string berdampingan, seperti "a" "b", atau ada sesuatu setelah kutipan penutup. | Konversi satu nilai setiap kali, atau gabungkan dulu menjadi satu string. |
| Itu dokumen JSON, bukan string | Masukannya berupa objek atau larik. Unescape bekerja pada satu nilai string. | Kirim ke Formatter JSON atau Validator JSON — keduanya tertaut di pesannya. |
Batas, kecepatan, dan privasi
Semuanya terjadi di perangkat Anda sendiri. Tidak ada langkah unggah, tidak ada antrean di server, dan tidak ada salinan teks Anda di mana pun selain di tab yang sedang Anda buka. Itu pula sebabnya ia cepat: tidak ada yang perlu bepergian.
- Gratis — Satu berkas setiap kali, hingga 10 MB, dengan semua opsi dan semua kedalaman tersedia. Menempel melewati pemeriksaan yang sama, jadi tidak ada yang perlu diakali.
- Pro — Tanpa batas ukuran tetap — sejauh kemampuan perangkat Anda — ditambah hingga 20 berkas sekaligus dan semua hasil dalam satu arsip.
- Kecepatan — Dokumen 10 MB di-escape dalam sekitar 22 milidetik dan di-unescape dalam sekitar 21. Konversinya berjalan di luar utas utama, dengan indikator kemajuan dan tombol Batal yang benar-benar menghentikan pekerjaannya alih-alih menyembunyikannya.
- Yang tidak pernah dikirim — Teks Anda, nama berkas Anda, dan hasil Anda. Alat ini tetap bekerja setelah halaman termuat bahkan dengan jaringan dimatikan, cara paling sederhana untuk membuktikannya sendiri.
- Format yang dibuka — .json, .txt, .log, .ndjson, .jsonl, .md, .csv, .tsv, .xml, .yaml, .yml, .sql, .env, dan .ini. Selain itu ditolak di pemilih berkas, dengan tautan ke alat yang memang membukanya: lembar kerja ke Excel ke JSON, dokumen ke Word ke teks.
Dokumen 10 MB di-escape dalam sekitar 22 milidetik pada laptop kelas menengah, di luar utas utama, sehingga halaman tidak pernah membeku.
Pertanyaan yang sering diajukan
Bagaimana cara kerja alat escape JSON ini?
Pilih Escape atau Unescape, lalu tempel teks Anda atau muat berkas. Escape membungkus teks dengan kutipan ganda dan meng-escape kutipan, backslash, baris baru, tab, serta karakter kontrol sehingga menghasilkan literal string JSON yang valid. Unescape melakukan kebalikannya dan mengembalikan teks mentah. Hasilnya tampil di samping sumber beserta penghitungnya, dan Anda dapat menyalinnya, mengunduhnya, atau mengirimnya kembali ke masukan.
Apakah data saya aman?
Teks Anda tidak dikirim ke mana pun. Escape dan unescape berjalan di perangkat Anda sendiri, jadi tidak ada yang diunggah, disimpan, atau dicatat — dan setelah halaman termuat, alat ini tetap bekerja tanpa koneksi sama sekali. Berkas yang Anda jatuhkan dibaca secara lokal dan dilepaskan saat Anda mengosongkan daftar.
Apa bedanya escape dan unescape?
Escape mengubah teks biasa menjadi literal string JSON: menambahkan kutipan ganda dan meng-escape karakter khusus agar nilainya aman di dalam JSON atau kode. Unescape melakukan kebalikannya: mengambil string JSON dan mengembalikan teks aslinya, mengurai \n, \t, dan \" menjadi karakter sungguhan.
Karakter apa saja yang di-escape?
Yang diwajibkan JSON: kutipan ganda menjadi \", backslash menjadi \\, baris baru menjadi \n, carriage return menjadi \r, tab menjadi \t, backspace menjadi \b, form feed menjadi \f, dan karakter lain di bawah U+0020 menjadi \u00XX. Surrogate tunggal juga selalu di-escape, karena tidak punya pengodean UTF-8 yang sah dan akan hilang saat berkas disimpan. Tiga opsi menambahkan \uXXXX untuk non-ASCII, \/ untuk garis miring, dan \u2028 / \u2029 untuk kedua pemisah baris Unicode.
Masukan seperti apa yang diminta Unescape, dan bagaimana kalau gagal?
Ia menerima string JSON lengkap dengan kutipannya, seperti "halo\ndunia", dan juga badan ter-escape tanpa kutipan, seperti halo\ndunia — persis yang Anda dapat saat menyalin nilai dari berkas JSON. Spasi di sekelilingnya diabaikan untuk string berkutip dan dipertahankan untuk badan telanjang. Jika masukannya bukan string yang sah, alat ini menyebut aturan yang dilanggar, memberi baris dan kolom, serta menampilkan teks di sekitarnya dengan tautan ke Formatter dan Validator JSON.
Bisakah menangani string ber-escape ganda atau bersarang?
Bisa. Baris log yang diserialkan dua atau tiga kali masih memuat \\n dan \\\" setelah satu kali proses. Biarkan kedalaman pada Otomatis dan alat ini terus mengupas selama hasilnya masih berupa string JSON berkutip, hingga sepuluh lapisan, lalu memberitahu berapa yang dikupas. Tetapkan kedalaman persis jika Anda ingin berhenti di tengah dan memeriksa lapisan antara.
Mengapa perlu meng-escape non-ASCII atau garis miring?
Escape non-ASCII menjadi \uXXXX ketika nilainya harus melewati jalur yang tidak sepenuhnya aman untuk 8 bit, atau ketika Anda ingin literalnya murni ASCII di kendali versi. Escape garis miring ketika string itu akan masuk ke dalam blok skrip HTML, di mana tag penutup di dalam string akan menutup tag terlalu awal. Keduanya tetap JSON yang sah — opsi ini ada karena tujuannya kadang memang peduli.
Apa itu U+2028 dan U+2029, dan mengapa ada opsinya?
Keduanya adalah pemisah baris dan pemisah paragraf Unicode. Keduanya sah tanpa escape di dalam string JSON dan, sampai ES2019, tidak sah di dalam literal string JavaScript — jadi string JSON yang ditempel langsung ke kode JavaScript bisa menjadi galat sintaks yang menunjuk karakter tak terlihat. Opsi ini meng-escape keduanya agar literalnya aman ditempel di mana saja.
Berapa besar berkas yang bisa dipakai, dan apakah jalan di ponsel?
Versi gratis menerima satu berkas hingga 10 MB. Pro menghapus batas tetap itu dan berjalan sejauh kemampuan perangkat Anda, menerima hingga 20 berkas sekaligus, serta mengantar semua hasil sebagai satu arsip. Menempel tidak punya batas terpisah — ia melewati pemeriksaan yang sama. Alat ini berjalan di peramban modern mana pun di desktop, tablet, dan ponsel, dan dokumen besar dikonversi di luar utas utama supaya halaman tetap responsif.
dari 65 penilaian
Beri nilai alat ini
Ketuk bintang — hanya sebentar