JSON: stringify dan parse
Konversi objek↔string dengan replacer dan reviver.
Pahami konsepnya
JSON.stringify(obj) mengubah objek JavaScript menjadi string JSON; JSON.parse(teks) mengubah balik. Kombinasi ini juga cara cepat deep-clone sederhana: JSON.parse(JSON.stringify(obj)) — kehilangan function, undefined, symbol, dan Date berubah jadi string.
Replacer (parameter kedua stringify) memfilter atau mengubah: JSON.stringify(obj, ["nama","umur"]) hanya menyertakan properti tersebut. Atau fungsi: (kunci, nilai) => kunci === "sandi" ? "***" : nilai.
Reviver (parameter kedua parse) mengubah saat membaca: JSON.parse(teks, (k, v) => k === "tanggal" ? new Date(v) : v) mengembalikan Date object dari string ISO.
JSON.stringify dengan indent: stringify(obj, null, 2) menghasilkan format rapi dengan indentasi 2 spasi.
Coba contoh kode
const data = {
nama: "Ari",
umur: 17,
sandi: "rahasia",
hobi: ["coding", "game"],
};
// stringify dengan replacer (sensor sandi)
const teks = JSON.stringify(data, (k, v) =>
k === "sandi" ? "***" : v
);
console.log(teks);
// parse dengan reviver
const balik = JSON.parse('{"nama":"Budi","tanggal":"2026-01-15"}',
(k, v) => k === "tanggal" ? new Date(v) : v
);
console.log(balik.tanggal.getFullYear()); // 2026
// format rapi
console.log(JSON.stringify(data, null, 2));Replacer (k, v) => mengganti sandi dengan "***" saat serialisasi. Reviver mengubah string tanggal kembali menjadi Date object saat parse. Indent 2 menghasilkan JSON terbaca manusia.
Latihan singkat
Uji: stringify {nama:"Ari",umur:17} → parse → .umur, harus `17`.