0Pricing
JavaScript Academy · บทเรียน

กลยุทธ์การแยกวิเคราะห์ JSON อย่างปลอดภัย

แยกวิเคราะห์ JSON ที่ไม่น่าเชื่อถืออย่างปลอดภัยด้วย try/catch การตรวจรูปแบบข้อมูลเล็ก ๆ ค่าเริ่มต้น และตัวช่วยขนาดเล็ก

กลยุทธ์การแยกวิเคราะห์ JSON อย่างปลอดภัย เป็นบทเรียน JavaScript Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 3 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน JavaScript Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส JavaScript Academy มีบทเรียนทั้งหมด 3 บทเรียน

เหตุใดจึงต้องแยกวิเคราะห์อย่างปลอดภัย

เป้าหมาย: อ่าน JSON โดยไม่เกิดปัญหาที่คาดไม่ถึง

  • ใช้ try/catch ครอบการแยกวิเคราะห์
  • ตัวช่วย safeParse ขนาดเล็ก
  • ตรวจสอบโครงสร้างสำหรับฟิลด์ที่จำเป็น
  • กำหนดค่าเริ่มต้นให้ค่าที่ไม่จำเป็น
กลยุทธ์การแยกวิเคราะห์ JSON อย่างปลอดภัย — ภาพประกอบ 1

ตัวช่วย safeParse

ใช้ safeParse ขนาดเล็กเพื่อป้องกันแอปล่มและแสดงข้อผิดพลาดอย่างชัดเจน

// 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);
กลยุทธ์การแยกวิเคราะห์ JSON อย่างปลอดภัย — ภาพประกอบ 2

การตรวจสอบโครงสร้าง

เพิ่มตัวตรวจสอบขนาดเล็กสำหรับฟิลด์ที่จำเป็น (ชื่อ, อายุ) และช่วงค่าพื้นฐาน

// 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));
}
กลยุทธ์การแยกวิเคราะห์ JSON อย่างปลอดภัย — ภาพประกอบ 3

ค่าเริ่มต้นสำหรับค่าที่ไม่จำเป็น

ใช้ ?? และการตรวจสอบแบบง่ายเพื่อกำหนดค่าเริ่มต้นที่ปลอดภัยให้ฟิลด์ที่ไม่จำเป็น

// 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);
}
กลยุทธ์การแยกวิเคราะห์ JSON อย่างปลอดภัย — ภาพประกอบ 4

ช่วงค่าและการจำกัด

จำกัดช่วงค่าตัวเลขและขนาดอาร์เรย์ เพื่อให้ข้อมูลปลอดภัยและคาดเดาได้

// 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);
}
กลยุทธ์การแยกวิเคราะห์ JSON อย่างปลอดภัย — ภาพประกอบ 5

แยกวิเคราะห์ → ตรวจสอบ → ปรับเป็นมาตรฐาน

ลำดับการทำงาน: แยกวิเคราะห์ → ตรวจสอบ → ปรับเป็นมาตรฐาน ควรเขียนฟังก์ชันให้เล็กและอ่านง่าย

// 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));
กลยุทธ์การแยกวิเคราะห์ JSON อย่างปลอดภัย — ภาพประกอบ 6

แบบทดสอบการแยกวิเคราะห์อย่างปลอดภัย

ตรวจสอบอย่างรวดเร็ว: รูปแบบที่ปลอดภัย

กลยุทธ์การแยกวิเคราะห์ JSON อย่างปลอดภัย — ภาพประกอบ 7

สรุป

สรุป: สร้าง safeParse ขนาดเล็ก ตรวจสอบฟิลด์และชนิดข้อมูลที่จำเป็น จำกัดตัวเลขและขนาดอาร์เรย์ แล้วใช้ค่าเริ่มต้น เพื่อให้แอปรับมือกับข้อมูลนำเข้าที่ไม่ถูกต้องได้อย่างราบรื่น

กลยุทธ์การแยกวิเคราะห์ JSON อย่างปลอดภัย — ภาพประกอบ 8

คำถามที่พบบ่อย

บทเรียน “กลยุทธ์การแยกวิเคราะห์ JSON อย่างปลอดภัย” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “กลยุทธ์การแยกวิเคราะห์ JSON อย่างปลอดภัย” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส JavaScript Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส JavaScript Academy มีบทเรียนทั้งหมด 3 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “กลยุทธ์การแยกวิเคราะห์ JSON อย่างปลอดภัย”

แยกวิเคราะห์ JSON ที่ไม่น่าเชื่อถืออย่างปลอดภัยด้วย try/catch การตรวจรูปแบบข้อมูลเล็ก ๆ ค่าเริ่มต้น และตัวช่วยขนาดเล็ก คุณปฏิบัติ JavaScript Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน JavaScript Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน JavaScript Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 3 บทเรียน

บทเรียน “กลยุทธ์การแยกวิเคราะห์ JSON อย่างปลอดภัย” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน JavaScript Academy นี้ได้ไหม

ได้ บทเรียน JavaScript Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. พื้นฐาน JSON.parse / JSON.stringify
  2. การโคลนแบบมีโครงสร้างและ URLSearchParams
  3. กลยุทธ์การแยกวิเคราะห์ JSON อย่างปลอดภัย
← กลับไปที่ JavaScript Academy