0Pricing
JavaScript Academy · Aula

Estratégias para análise segura de JSON

Analise JSON não confiável com segurança usando try/catch, pequenas verificações de estrutura, valores padrão e pequenos auxiliares

Estratégias para análise segura de JSON é uma aula grátis de JavaScript Academy no CoddyKit. Esta é a aula 3 de 3. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de JavaScript Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de JavaScript Academy inclui 3 aulas no total.

Por que fazer uma análise segura?

Objetivo: Ler JSON sem surpresas.

  • try/catch ao redor da análise
  • Pequeno auxiliar safeParse
  • Verificações de formato para campos obrigatórios
  • Valores padrão para valores opcionais
Estratégias para análise segura de JSON — ilustração 1

Auxiliar safeParse

Use um pequeno safeParse para evitar travamentos e apresentar os erros com clareza.

// 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);
Estratégias para análise segura de JSON — ilustração 2

Verificações de formato

Adicione pequenos validadores para os campos obrigatórios (nome, idade) e para intervalos simples.

// 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));
}
Estratégias para análise segura de JSON — ilustração 3

Valores padrão para valores opcionais

Use ?? e verificações simples para definir valores padrão seguros para campos opcionais.

// 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);
}
Estratégias para análise segura de JSON — ilustração 4

Intervalos e limites

Limite os intervalos numéricos e o tamanho dos vetores para manter os dados seguros e previsíveis.

// 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);
}
Estratégias para análise segura de JSON — ilustração 5

Analisar → validar → normalizar

Fluxo: analisar → validar → normalizar. Mantenha as funções pequenas e legíveis.

// 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));
Estratégias para análise segura de JSON — ilustração 6

Quiz sobre análise segura

Verificação rápida: padrão seguro.

Estratégias para análise segura de JSON — ilustração 7

Recapitulação

Recapitulação: crie um pequeno safeParse, verifique os campos e tipos obrigatórios, limite números, limite vetores e aplique valores padrão para que seu aplicativo lide tranquilamente com entradas inválidas.

Estratégias para análise segura de JSON — ilustração 8

Perguntas Frequentes

A aula “Estratégias para análise segura de JSON” é grátis?

Sim — o texto completo de “Estratégias para análise segura de JSON” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de JavaScript Academy, atualize para CoddyKit PRO. O curso de JavaScript Academy inclui 3 aulas no total.

O que vou aprender em “Estratégias para análise segura de JSON”?

Analise JSON não confiável com segurança usando try/catch, pequenas verificações de estrutura, valores padrão e pequenos auxiliares Você pratica JavaScript Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar JavaScript Academy?

Nenhuma experiência prévia é necessária. JavaScript Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 3 de 3.

Quanto tempo leva a aula “Estratégias para análise segura de JSON”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de JavaScript Academy?

Sim. Cada aula de JavaScript Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Fundamentos de JSON.parse e JSON.stringify
  2. Clonagem estruturada e URLSearchParams
  3. Estratégias para análise segura de JSON
← Voltar para JavaScript Academy