0Pricing
JavaScript Academy · Ders

Güvenli JSON Ayrıştırma Stratejileri

Güvenilmeyen JSON'u try/catch, küçük yapı denetimleri, varsayılanlar ve küçük yardımcı araçlarla güvenle ayrıştırın.

Güvenli JSON Ayrıştırma Stratejileri, CoddyKit'te ücretsiz bir JavaScript Academy dersidir. Bu, 3 dersinin 3. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, JavaScript Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. JavaScript Academy kursu toplamda 3 dersten oluşur.

Güvenli ayrıştırma neden?

Amaç: JSON'u beklenmedik sonuçlar olmadan okumak.

  • parse çevresinde try/catch
  • Küçük bir safeParse yardımcısı
  • Zorunlu alanlar için biçim denetimleri
  • İsteğe bağlı değerler için varsayılanlar
Güvenli JSON Ayrıştırma Stratejileri — resim 1

safeParse yardımcısı

Çökmeleri önlemek ve hataları anlaşılır biçimde göstermek için küçük bir safeParse kullanın.

// 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);
Güvenli JSON Ayrıştırma Stratejileri — resim 2

Biçim denetimleri

Zorunlu alanlar (ad, yaş) ve basit aralıklar için küçük doğrulayıcılar ekleyin.

// 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));
}
Güvenli JSON Ayrıştırma Stratejileri — resim 3

İsteğe bağlı değerler için varsayılanlar

İsteğe bağlı alanlar için güvenli varsayılanlar belirlemek üzere ?? ve basit denetimler kullanın.

// 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);
}
Güvenli JSON Ayrıştırma Stratejileri — resim 4

Aralıklar ve üst sınırlar

Verileri güvenli ve öngörülebilir tutmak için sayısal aralıkları sınırlayın ve dizi boyutlarına üst sınır koyun.

// 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);
}
Güvenli JSON Ayrıştırma Stratejileri — resim 5

Ayrıştır → doğrula → normalleştir

İşlem hattı: ayrıştır → doğrula → normalleştir. İşlevleri küçük ve okunabilir tutun.

// 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));
Güvenli JSON Ayrıştırma Stratejileri — resim 6

Güvenli ayrıştırma testi

Hızlı kontrol: Güvenli kalıp.

Güvenli JSON Ayrıştırma Stratejileri — resim 7

Özet

Özet: Küçük bir safeParse oluşturun, gerekli alanları ve türleri kontrol edin, sayıları sınırlayın, dizilere üst sınır koyun ve varsayılan değerleri uygulayın; böylece uygulamanız hatalı girdileri sakince işleyebilir.

Güvenli JSON Ayrıştırma Stratejileri — resim 8

Sıkça Sorulan Sorular

“Güvenli JSON Ayrıştırma Stratejileri” dersi ücretsiz mi?

Evet — “Güvenli JSON Ayrıştırma Stratejileri” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve JavaScript Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. JavaScript Academy kursu toplamda 3 dersten oluşur.

“Güvenli JSON Ayrıştırma Stratejileri” dersinde ne öğreneceğim?

Güvenilmeyen JSON'u try/catch, küçük yapı denetimleri, varsayılanlar ve küçük yardımcı araçlarla güvenle ayrıştırın. JavaScript Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

JavaScript Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te JavaScript Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 3 dersinin 3. dersidir.

“Güvenli JSON Ayrıştırma Stratejileri” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu JavaScript Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her JavaScript Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. JSON.parse / JSON.stringify temelleri
  2. Yapısal Klonlama ve URLSearchParams
  3. Güvenli JSON Ayrıştırma Stratejileri
← JavaScript Academy Sayfasına Dön