0Pricing
JavaScript Academy · Pelajaran

Strategi Penguraian JSON yang Aman

Uraikan JSON tak tepercaya dengan aman menggunakan try/catch, pemeriksaan bentuk sederhana, nilai bawaan, dan utilitas pembantu kecil

Strategi Penguraian JSON yang Aman adalah pelajaran JavaScript Academy gratis di CoddyKit. Ini adalah pelajaran 3 dari 3. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar JavaScript Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus JavaScript Academy mencakup 3 pelajaran total.

Mengapa penguraian aman?

Tujuan: Membaca JSON tanpa kejutan.

  • try/catch di sekitar penguraian
  • Pembantu safeParse kecil
  • Pemeriksaan struktur untuk bidang wajib
  • Nilai bawaan untuk nilai opsional
Strategi Penguraian JSON yang Aman — ilustrasi 1

Pembantu safeParse

Gunakan safeParse kecil untuk menghindari kerusakan dan menampilkan kesalahan dengan jelas.

// safeParse: never throws, returns { ok, value, error }
function safeParse(text) {
  try {
    const value = JSON.parse(text);
    return { ok: true, value: value, error: null };
  } catch (e) {
    return { ok: false, value: null, error: String(e.message) };
  }
}

// Demo
const good = safeParse("{\"name\":\"Ayla\",\"age\":20}");
const bad  = safeParse("{broken}");

console.log("good.ok:", good.ok, "name:", good.value && good.value.name);
console.log("bad.ok:", bad.ok, "error:", bad.error);
Strategi Penguraian JSON yang Aman — ilustrasi 2

Pemeriksaan struktur

Tambahkan validator kecil untuk bidang wajib (name, age) dan rentang sederhana.

// Validate required fields and simple types
function isNonEmptyString(x) {
  return typeof x === "string" && x.trim().length > 0;
}

function isNonNegativeInt(x) {
  return Number.isInteger(x) && x >= 0;
}

function validateUser(u) {
  if (u == null || typeof u !== "object") {
    return { ok: false, reason: "not an object" };
  }
  if (!isNonEmptyString(u.name)) {
    return { ok: false, reason: "name required" };
  }
  if (!isNonNegativeInt(u.age)) {
    return { ok: false, reason: "age must be a non-negative integer" };
  }
  return { ok: true };
}

// Demo
const rawUser = "{\"name\":\"Mina\",\"age\":22}";
const parsed = safeParse(rawUser);

if (parsed.ok) {
  console.log("valid?", validateUser(parsed.value));
}
Strategi Penguraian JSON yang Aman — ilustrasi 3

Nilai bawaan untuk nilai opsional

Gunakan ?? dan pemeriksaan sederhana untuk menetapkan nilai bawaan yang aman bagi bidang opsional.

// Apply defaults using nullish coalescing and spread
function normalizeUser(u) {
  const theme = (u.theme ?? "light");        // default theme
  const tags  = Array.isArray(u.tags) ? u.tags : [];
  return { ...u, theme: theme, tags: tags };
}

// Demo
const raw = "{\"name\":\"Lena\",\"age\":19}";
const p = safeParse(raw);
if (p.ok) {
  const v = normalizeUser(p.value);
  console.log("theme:", v.theme, "tags:", v.tags);
}
Strategi Penguraian JSON yang Aman — ilustrasi 4

Rentang dan batas

Batasi rentang numerik dan ukuran array agar data tetap aman dan dapat diprediksi.

// Guard numbers and arrays with tiny limits
function clampNumber(x, min, max) {
  if (typeof x !== "number" || !Number.isFinite(x)) return min;
  return Math.min(max, Math.max(min, x));
}

function toStringArray(a) {
  if (!Array.isArray(a)) return [];
  return a.map(function (x) { return String(x); }).slice(0, 5); // cap length
}

// Demo
const cfgText = "{\"limit\":200,\"labels\":[\"a\",\"b\",\"c\",\"d\",\"e\",\"f\"]}";
const cfg = safeParse(cfgText);
if (cfg.ok) {
  const limit = clampNumber(cfg.value.limit, 1, 100);
  const labels = toStringArray(cfg.value.labels);
  console.log("limit:", limit, "labels:", labels);
}
Strategi Penguraian JSON yang Aman — ilustrasi 5

Uraikan → validasikan → normalkan

Alur: uraikan → validasikan → normalkan. Buat fungsi tetap kecil dan mudah dibaca.

// Putting it together: parse → validate → normalize
function readUser(jsonText) {
  const p = safeParse(jsonText);
  if (!p.ok) return { ok: false, reason: "parse: " + p.error };

  const check = validateUser(p.value);
  if (!check.ok) return { ok: false, reason: "shape: " + check.reason };

  const normalized = normalizeUser(p.value);
  return { ok: true, value: normalized };
}

// Demo
const text = "{\"name\":\"Ayla\",\"age\":21,\"tags\":[\"new\"],\"theme\":\"dark\"}";
console.log(readUser(text));
Strategi Penguraian JSON yang Aman — ilustrasi 6

Kuis penguraian aman

Pemeriksaan singkat: Pola aman.

Strategi Penguraian JSON yang Aman — ilustrasi 7

Ringkasan

Ringkasan: Buat safeParse kecil, periksa bidang dan tipe yang diperlukan, batasi angka, batasi array, dan terapkan nilai bawaan agar aplikasi Anda menangani masukan yang buruk dengan tenang.

Strategi Penguraian JSON yang Aman — ilustrasi 8

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Strategi Penguraian JSON yang Aman” gratis?

Ya — teks lengkap “Strategi Penguraian JSON yang Aman” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus JavaScript Academy, upgrade ke CoddyKit PRO. Kursus JavaScript Academy mencakup 3 pelajaran total.

Apa yang akan aku pelajari di “Strategi Penguraian JSON yang Aman”?

Uraikan JSON tak tepercaya dengan aman menggunakan try/catch, pemeriksaan bentuk sederhana, nilai bawaan, dan utilitas pembantu kecil Kamu berlatih JavaScript Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai JavaScript Academy?

Tidak diperlukan pengalaman sebelumnya. JavaScript Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 3 dari 3.

Berapa lama pelajaran “Strategi Penguraian JSON yang Aman” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran JavaScript Academy ini?

Ya. Setiap pelajaran JavaScript Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Dasar-Dasar JSON.parse / JSON.stringify
  2. Kloning Terstruktur dan URLSearchParams
  3. Strategi Penguraian JSON yang Aman
← Kembali ke JavaScript Academy