Fetch · límite API JSON

Fetch API snake_case ↔ camelCase

Envuelve llamadas Fetch JSON para mantener camelCase en la aplicación y snake_case en el formato de red.

Por Equipo editorial de Camel Case ConverterPublicado 12 sept 2026Última revisión

Convierte la solicitud JSON antes de serializar

import { keysToSnake } from "./api-case"

export async function postJson<T>(url: string, body: unknown): Promise<T> {
  const response = await fetch(url, {
    method: "POST",
    headers: { "content-type": "application/json" },
    body: JSON.stringify(keysToSnake(body)),
  })

  if (!response.ok) {
    throw new Error(`API request failed: ${response.status}`)
  }

  return response.json() as Promise<T>
}

Convierte el objeto de la aplicación a snake_case antes de JSON.stringify.

Convierte la respuesta analizada antes de devolverla

import { keysToCamel } from "./api-case"

export async function getJson<T>(url: string): Promise<T> {
  const response = await fetch(url)

  if (!response.ok) {
    throw new Error(`API request failed: ${response.status}`)
  }

  const wireData: unknown = await response.json()
  return keysToCamel(wireData) as T
}

Después de response.json(), convierte recursivamente las claves a camelCase.

Consideraciones de producción

  • Úsalo solo con endpoints JSON; no transformes FormData, Blob, ArrayBuffer, streams o cargas de archivos.
  • Convierte después de response.json(), no el texto bruto, para no modificar valores string.
  • Mantén la detección de colisiones cuando varias claves puedan normalizarse al mismo resultado.
  • Centraliza el wrapper en un módulo de cliente API compartido.

Probar el límite JSON online

Prueba objetos anidados, arrays, exclusiones, stop paths, prefijos, colisiones y diff de claves antes de implementar.

Suelta un archivo .json o elige uno de tu dispositivo

Los archivos se leen solo en tu navegador. Tamaño máximo: 5 MB.

JSON convertido
{
  "userProfile": {
    "firstName": "Ada",
    "createdAt": "2026-09-12"
  }
}

El análisis, lectura de archivos, formato y conversión se ejecutan localmente en tu navegador. El JSON no se envía a un servidor de conversión.