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?…

JSON (singkatan dari JavaScript Object Notation) adalah format teks buat menyimpan dan mengirim data. Bentuknya mirip object JavaScript, tapi wujudnya cuma teks, jadi bisa dikirim ke server, disimpan di browser, dan dibaca bahasa pemrograman lain. JavaScript punya dua alat buat itu: JSON.stringify mengubah object jadi teks JSON, dan JSON.parse mengubah teks JSON jadi object lagi.

🧪 Tebakan cepat: sesudah object diubah pakai JSON.stringify, apa kamu masih bisa membaca .name dari hasilnya? Tebak dulu, jawabannya ada di bagian "Object jadi teks, teks jadi object".

Object jadi teks, teks jadi object

const student = {
  name: 'Budi',
  age: 17,
  hobbies: ['coding', 'baca'],
}

const json = JSON.stringify(student)
console.log(json)
console.log('typeof json:', typeof json)
console.log('json.name:', json.name)

const back = JSON.parse(json)
console.log('back.name:', back.name)

Dua method ini gak mengubah nilai aslinya, tapi memberi nilai baru. Simpan hasilnya ke variabel, atau langsung return JSON.stringify(obj) dari fungsi. Jangan ketik teks JSON-nya sendiri: JSON.stringify bisa mengubah object apa pun, bukan cuma satu contoh.

Aturan menulis JSON

JSON lebih ketat dari object JavaScript:

{
  "nama": "Budi",
  "umur": 17,
  "aktif": true,
  "hobi": ["membaca", "coding"],
  "alamat": null
}

Teks yang melanggar aturan ini bikin JSON.parse melempar SyntaxError.

Yang hilang dan berubah waktu stringify

const data = {
  nama: 'Budi',
  sapa() { return 'Halo' },
  panggilan: undefined,
  lahir: new Date('2008-05-17'),
}

JSON.stringify(data)
// '{"nama":"Budi","lahir":"2008-05-17T00:00:00.000Z"}'

⚠️ Jebakan yang sering ketemu

TL;DR: JSON (JavaScript Object Notation) adalah format teks buat data. JSON.stringify(obj) mengubah object jadi teks, JSON.parse(teks) mengubah teks jadi object lagi. Hasil stringify cuma string, jadi properti-nya baru bisa dibaca sesudah di-parse. Di JSON, nama properti dan teks pakai kutip dua, tanpa koma di akhir. Fungsi dan undefined dibuang diam-diam, dan Date jadi teks.

Yang akan kamu pelajari