JSON—JavaScript Object Notation—adalah format berbasis teks yang ada di mana-mana untuk pertukaran data terstruktur. Ini distandarisasi oleh IETF sebagai RFC 8259 dan oleh Ecma International sebagai ECMA-404, yang bersama-sama mendefinisikan sintaks ringkas dan agnostik bahasa yang mendukung API modern, log, konfigurasi, dan basis data.
Nilai JSON adalah objek, array, string, angka, atau salah satu dari literal true, false, atau null; objek memetakan string ke nilai dan array menampung nilai yang diurutkan — dengan spasi putih yang tidak signifikan diizinkan di sekitar karakter struktural (RFC 8259, ECMA-404). Meskipun JSON berasal dari JavaScript, ia independen bahasa dan didukung secara virtual di mana saja (MDN: JSON). Di jaringan, pengkodean de-facto dan yang direkomendasikan adalah UTF-8 (RFC 8259 §8.1). Untuk keamanan interoperabilitas ekstra, profil I-JSON (RFC 7493) memperketat aturan seputar pengkodean dan rentang numerik.
Di JavaScript, objek global JSON mengekspos dua pekerja keras:JSON.parse (dengan reviver opsional) dan JSON.stringify (dengan replacer/spasi untuk pencetakan cantik), seperti yang didokumentasikan di MDN (parse, stringify).
Tata bahasa angka JSON adalah desimal, tetapi spesifikasinya tidak menentukan presisi atau perbedaan integer/float. Implementasi memilih cara merepresentasikannya (RFC 8259 §6). Di JavaScript dan Node.js, Number adalah presisi ganda IEEE-754, yang berarti hanya integer dalam [−(2^53−1), 2^53−1] yang benar-benar aman — lihat Number.MAX_SAFE_INTEGER dan tipe BigInt. Inilah sebabnya mengapa API publik sering mengirimkan ID sebagai string dan memvalidasi "integer aman" secara eksplisit.
Seiring matangnya penggunaan, standar muncul untuk mengalamatkan dan memodifikasi JSON di tempat. JSON Pointer (RFC 6901) adalah sintaks kecil yang dibatasi garis miring untuk menemukan nilai (misalnya, /a/b/0) dengan aturan escape untuk ~ dan /. JSON Patch (RFC 6902) memodelkan pembaruan parsial sebagai operasi terurut (add, remove, replace, move, copy, test) dan berjalan sebagai application/json-patch+json. Untuk perbedaan yang lebih sederhana, JSON Merge Patch (RFC 7386) menggunakan penggabungan berbentuk dokumen: bidang yang ada ditambahkan/diganti; mengatur bidang ke null akan menghapusnya. Banyak kerangka kerja mendukung satu atau kedua bentuk secara bawaan.
JSON sendiri tidak memiliki skema, tetapi ekosistem bersandar pada skema untuk validasi, dokumentasi, dan pembuatan kode. Keluarga JSON Schema 2020-12 menentukan batasan seperti type, properties, items, dan kata kunci komposisi, dan selaras dengan OpenAPI 3.1. Untuk alur kerja yang berpusat pada pembuatan kode, JSON Type Definition (RFC 8927) menawarkan bahasa yang sengaja kurang ekspresif yang memetakan secara dapat diprediksi ke sistem tipe arus utama.
JSON klasik mengharapkan satu teks lengkap per payload, yang mempersulit streaming log dan respons yang berumur panjang. Dua pola membantu:
application/json-seq.Ketika bandwidth atau kecepatan mendominasi, format "JSON biner" mempertahankan model data JSON sambil menukar keterbacaan manusia dengan efisiensi:
Karena JSON hanyalah teks, sebagian besar risiko berasal dari cara Anda mengangkut dan menanganinya:
<script> dengan callback) adalah solusi pra-CORS untuk permintaan lintas-asal tetapi berbahaya — ia mengeksekusi skrip sewenang-wenang. Lebih suka CORS dengan respons application/json nyata (OWASP: Penyalahgunaan JSONP).JSON memulai debutnya di bawah RFC 4627 (2006); tipe media yang terdaftar adalah application/json, yang spesifikasinya sekarang menunjuk ke RFC 8259. Parameter "charset" pada respons JSON umumnya tidak perlu karena UTF-8 adalah default di internet publik.
Pengembang sering menginginkan komentar, koma di belakang, atau string dengan tanda kutip tunggal dalam konfigurasi. Itu di luar JSON standar, tetapi JSON5 menyediakan superset yang didokumentasikan dengan baik untuk file yang diedit manusia. Hindari mengirim JSON5 melalui API publik kecuali Anda mengontrol kedua ujungnya.
Keberhasilan JSON berasal dari area permukaan yang kecil, dukungan bahasa yang luas, dan cincin standar yang berdekatan — pointer, patching, skema, urutan — yang mencakup realitas berantakan dari sistem terdistribusi. Pahami dasar-dasarnya (sintaks, pengkodean, angka), bersandar pada standar yang berdekatan yang tepat, dan itu akan terus membayar dividen di seluruh tumpukan dan layanan (RFC 8259, ECMA-404, RFC 6901, RFC 6902, RFC 7386, JSON Schema, JTD, RFC 7464, NDJSON).
JSON (JavaScript Object Notation) adalah format pertukaran data ringan yang mudah dibaca dan ditulis oleh manusia dan mudah diurai dan dihasilkan oleh mesin. Ini banyak digunakan untuk mentransmisikan data dalam aplikasi web.
Memformat JSON membuatnya dapat dibaca manusia dengan menambahkan indentasi dan jeda baris yang tepat. Ini sangat berguna saat bekerja dengan data JSON yang diminimalkan atau dikompresi, debugging, atau meninjau respons API.
Validasi JSON memeriksa apakah string JSON Anda sesuai dengan spesifikasi JSON. Ini mengidentifikasi kesalahan sintaks seperti koma yang hilang, tanda kurung yang tidak tertutup, atau tanda kutip yang tidak tepat, membantu Anda menangkap kesalahan lebih awal.
Tampilan kode menampilkan JSON yang diformat sebagai teks dengan penyorotan sintaks, mirip dengan bagaimana tampilannya di editor kode. Tampilan pohon menyajikan JSON sebagai struktur interaktif yang dapat dilipat di mana Anda dapat memperluas dan menciutkan objek dan array bersarang.
Ya! Semua pemformatan dan validasi JSON terjadi sepenuhnya di browser Anda. Data Anda tidak pernah meninggalkan komputer Anda, memastikan privasi dan keamanan lengkap.
Ya, Anda dapat mengunggah file JSON menggunakan tombol 'Buka file'. Alat akan membaca file dan menampilkan output yang diformat segera.
Kesalahan JSON umum termasuk: koma yang hilang antara pasangan kunci-nilai, menggunakan tanda kutip tunggal alih-alih tanda kutip ganda untuk string, koma tertinggal, tanda kurung atau kurung kurawal yang tidak tertutup, dan kunci yang tidak dikutip.
Ya, gunakan tombol 'Salin' untuk menyalin JSON yang diformat ke clipboard Anda. Ini berguna untuk menempel JSON yang dibersihkan ke dalam kode atau dokumentasi Anda.