JSON
JSON (JavaScript Object Notation)
Format pertukaran data ringan yang menggunakan teks yang mudah dibaca manusia untuk merepresentasikan objek data, array, angka, string, boolean, dan null, banyak digunakan untuk komunikasi antara server web dan browser.
Detail Teknis
Spesifikasi JSON (RFC 8259/ECMA-404): 6 tipe — objek ({"key":value}), array ([values]), string (Unicode dengan escape \uXXXX yang di-quote ganda), angka (integer atau floating-point, tanpa NaN/Infinity), boolean (true/false), null. Tidak ada komentar, koma di akhir, atau tanda kutip tunggal. Encoding adalah UTF-8 (tanpa BOM). Parsing: JSON.parse() (kinerja native browser), parser streaming untuk data besar (JSONStream, ijson). Ekstensi: JSON5 (komentar, koma di akhir, kunci tanpa tanda kutip), JSONC (JSON dengan komentar — VS Code), JSON-LD (data tertaut), NDJSON/JSON Lines (satu objek JSON per baris untuk streaming). Keamanan: eval() yang digunakan secara historis untuk parsing — kerentanan injeksi kode; selalu gunakan JSON.parse(). Alternatif: MessagePack (biner, lebih kecil), CBOR (biner, lebih banyak tipe), Protocol Buffers (berbasis skema, terkompresi), YAML (superset dengan fitur lebih banyak).
Contoh
```javascript
// JSON parse with reviver function
const data = JSON.parse(text, (key, val) => {
if (key === 'date') return new Date(val);
return val;
});
// JSON stringify with replacer and indentation
JSON.stringify(data, ['name', 'email'], 2);
```