Fetch · JSON-API-Grenze

Fetch API snake_case ↔ camelCase

Kapsle JSON-Fetch-Aufrufe so, dass die App camelCase und das Wire-Format snake_case behält.

Von Camel Case Converter RedaktionVeröffentlicht 12.09.2026Zuletzt geprüft

JSON-Request vor der Serialisierung konvertieren

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>
}

Das App-Objekt wird vor JSON.stringify in snake_case umgewandelt.

Geparste Response vor der Rückgabe konvertieren

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
}

Nach response.json() werden Schlüssel rekursiv in camelCase umgewandelt.

Hinweise für Produktion

  • Nur für JSON-Endpunkte verwenden; FormData, Blob, ArrayBuffer, Streams und Datei-Uploads nicht transformieren.
  • Nach response.json() mappen, nicht im Rohtext, damit String-Werte unverändert bleiben.
  • Kollisionsprüfung beibehalten, wenn mehrere Quellschlüssel zum gleichen Zielschlüssel werden könnten.
  • Den Wrapper in einem gemeinsamen API-Client-Modul zentralisieren.

JSON-Grenze online testen

Teste verschachtelte Objekte, Arrays, Ausschlüsse, Stop Paths, Präfixe, Kollisionen und Key-Diff vor der Implementierung.

.json-Datei hier ablegen oder vom Gerät auswählen

Dateien werden nur im Browser gelesen. Maximale Größe: 5 MB.

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

Parsing, Dateilesen, Formatierung und Schlüsselkonvertierung laufen lokal im Browser. JSON wird nicht an einen Conversion-Server gesendet.