JSON — JavaScript

Bayangin server di Amerika nulis pake PHP, browser kamu di Indonesia jalanin JavaScript. Beda bahasa, beda benua, beda mesin — gimana mereka bisa tuker info? Ja

Bayangin server di Amerika nulis pake PHP, browser kamu di Indonesia jalanin JavaScript. Beda bahasa, beda benua, beda mesin — gimana mereka bisa tuker info? Jawabannya: pake "bahasa universal" yang dua-duanya paham. Itu JSON. Format teks polos yang mirip object JavaScript, tapi udah jadi standar internasional — tiap bahasa pemrograman tau cara baca + tulis JSON.

🤔 Sejarah singkat. JSON diciptain Douglas Crockford tahun 2001, awalnya cuma cara hemat buat tuker data ketimbang XML yang verbose. Sekarang? 99% API web pake JSON. Kalau ngomong "API", anggap aja artinya "tuker JSON".

{
  "nama": "Budi",
  "umur": 17,
  "hobi": ["membaca", "coding"]
}

Perbedaan JSON vs Object JavaScript:

Konversi di JavaScript:

// Object → JSON string
const obj = { nama: "Budi", umur: 17 };
const jsonStr = JSON.stringify(obj);
// '{"nama":"Budi","umur":17}'

// JSON string → Object
const parsed = JSON.parse(jsonStr);
console.log(parsed.nama); // "Budi"

🎭 Analogi sehari-hari

JSON = kontainer pengiriman standar internasional. Mau kapal dari mana saja, isi apa saja, kontainer ukurannya sama. Server PHP, browser JS, mobile Swift — semua tahu cara buka kontainer JSON.

JSON.stringify = packing barang ke kontainer. JSON.parse = bongkar kontainer di tujuan.

⚠️ Jebakan yang sering ditemui

1. JSON HARUS double quote — single quote = error.

{ 'nama': "Budi" }    // ❌ SyntaxError
{ "nama": "Budi" }    // ✅

2. Trailing comma (koma di akhir) tidak boleh.

{ "a": 1, "b": 2, }   // ❌
{ "a": 1, "b": 2 }    // ✅

3. Fungsi & undefined HILANG saat stringify.

JSON.stringify({ f: () => 1, x: undefined, y: 5 });
// '{"y":5}'  — f dan x hilang tanpa peringatan

4. JSON.parse lempar error — bungkus dengan try/catch.

try {
  JSON.parse("bukan json");
} catch (e) {
  console.log("Format JSON salah");
}

5. Comment // tidak diizinkan di JSON.

{ "x": 1 /* gak boleh */ }  // ❌

TL;DR: JSON = format teks universal buat tuker data antar bahasa/sistem. 99% API web pakai JSON. JSON.stringify(obj) (object → string) + JSON.parse(str) (string → object). Aturan ketat: double quote wajib (single = error), no trailing comma, no comment, no function/undefined (hilang silent). JSON.parse lempar SyntaxError kalau format salah — wajib try/catch. Cuma support: string, number, boolean, null, array, object.

Yang akan kamu pelajari