Datei hochladen
  1. base64hub
  2. Text-Tools
  3. JSON in Base64

JSON in Base64: JSON-Payloads kodieren

Fügen Sie JSON ein und erhalten Sie eine Zeile Base64 für einen Header, eine URL oder eine Umgebungsvariable. Die Bytes werden exakt wie eingegeben kodiert. Minifizieren Sie also vorher, wenn das Ergebnis reproduzierbar sein muss.

Kostenlos ohne Anmeldung, ohne Limits Lokal kein Upload Aktualisiert 27.10.2026
Eingabe 0 BAusgabe 0 BGröße –

Wird in Ihrem Browser verarbeitet. Diese Seite kann Ihre Daten nirgendwohin senden – woher wir das wissen

So kodieren Sie JSON in Base64

  1. Fügen Sie das JSON in Eingabe · Text ein, oder drücken Sie Beispiel, um ein Beispielobjekt zu laden.
  2. Kopieren Sie das Base64 aus Ausgabe · Base64. Die Größenangaben zeigen, um wie viel es länger geworden ist.
  3. Für URLs, Cookies oder tokenartige Werte aktivieren Sie URL-sicher (- _) und Ohne Padding (=).
  4. Herunterladen speichert das Ergebnis als base64.txt.

Das Beispiel auf dieser Seite, {"id":42,"name":"base64hub","tags":["json","encode"],"active":true}, ist 67 Bytes groß und wird zu eyJpZCI6NDIsIm5hbWUiOiJiYXNlNjRodWIiLCJ0YWdzIjpbImpzb24iLCJlbmNvZGUiXSwiYWN0aXZlIjp0cnVlfQ== kodiert. Zur Kontrolle drücken Sie Tauschen oder nutzen Base64 in JSON, das zusätzlich formatiert.

Leerraum und Formatierung ändern das Base64

Base64 kodiert genau die Zeichen des JSON-Texts, daher ergeben zwei Dokumente mit derselben Bedeutung unterschiedliches Base64, sobald sich ein einziges Leerzeichen unterscheidet:

JSON-TextBase64
{"a":1}eyJhIjoxfQ==
{"a": 1}eyJhIjogMX0=
{ "a": 1 }eyAiYSI6IDEgfQ==
{"a":1} formatiert über drei ZeilenewogICJhIjogMQp9

Wird das Base64 verglichen, gecacht oder signiert, erzeugen Sie das JSON mit einem einzigen Serialisierer und festen Einstellungen, und kodieren Sie genau diese Zeichenkette. Eine weitere Falle ist die Reihenfolge der Schlüssel: Die meisten Serialisierer behalten die Einfügereihenfolge bei, {"a":1,"b":2} und {"b":2,"a":1} werden also unterschiedlich kodiert.

Python und JavaScript sind sich standardmäßig nicht einig

Das Objekt {"name": "Zoë", "n": 1}, serialisiert mit den Voreinstellungen der jeweiligen Sprache:

SerialisiererJSON-TextBase64
JavaScript JSON.stringify{"name":"Zoë","n":1}eyJuYW1lIjoiWm/DqyIsIm4iOjF9
Python json.dumps{"name": "Zoë", "n": 1}eyJuYW1lIjogIlpvXHUwMGViIiwgIm4iOiAxfQ==
Python mit separators=(",", ":"), ensure_ascii=False{"name":"Zoë","n":1}eyJuYW1lIjoiWm/DqyIsIm4iOjF9

Mit aktiviertem „URL-sicher“ und „Ohne Padding“ wird die JavaScript-Version zu eyJuYW1lIjoiWm_DqyIsIm4iOjF9.

Wo Base64-JSON verwendet wird

  • HTTP-Header. Eigene Header mit Kontextdaten, etwa für Tracing oder Nutzermetadaten, enthalten oft Base64-JSON, da rohe JSON-Anführungszeichen und Nicht-ASCII-Zeichen in Header-Werten unsicher sind. Viele Server lehnen Header-Zeilen über etwa 8 KB ab, halten Sie diese Payloads also klein.
  • URL-Parameter. OAuth-state-Werte, Weiterleitungsziele und Freigabelinks transportieren manchmal ein kleines JSON-Objekt als Base64URL.
  • Umgebungsvariablen und Secrets. Eine ganze JSON-Konfiguration passt ohne Escaping in eine Variable, zum Beispiel ein Service-Account-Schlüssel in einem CI-System.
  • Token-Formate. Header und Payload eines JWT sind Base64URL-kodiertes JSON ohne Padding. Um ein signiertes Token zu bauen, nutzen Sie den JWT-Encoder; diese Seite kodiert nur.

Base64 legt ein Drittel auf die Größe drauf, und die Anführungszeichen und Schlüssel des JSON sind oft größer als die Werte. Base64-Größenzuwachs zeigt, wann sich vorheriges Komprimieren lohnt.

JSON in Base64 im Code

const obj = { name: "Zoë", n: 1 };
const bytes = new TextEncoder().encode(JSON.stringify(obj));
btoa(String.fromCharCode(...bytes));                     // "eyJuYW1lIjoiWm/DqyIsIm4iOjF9"
Buffer.from(JSON.stringify(obj)).toString("base64url"); // "eyJuYW1lIjoiWm_DqyIsIm4iOjF9" (Node.js)

Ohne den Schritt mit TextEncoder kodiert btoa(JSON.stringify(obj)) das ë als einzelnes Latin-1-Byte (eyJuYW1lIjoiWm/rIiwibiI6MX0=), das UTF-8-Decoder nicht lesen können, und wirft bei allem jenseits von Latin-1, etwa einem Emoji, einen Fehler.

import base64, json

obj = {"name": "Zoë", "n": 1}
text = json.dumps(obj, separators=(",", ":"), ensure_ascii=False)
base64.b64encode(text.encode("utf-8")).decode()   # 'eyJuYW1lIjoiWm/DqyIsIm4iOjF9'

Weitere Optionen auf den Seiten zu JavaScript, Node.js und Python.

Häufige Fragen

Wie wandle ich JSON in Base64 um?

Serialisieren Sie das JSON zu einer Zeichenkette, kodieren Sie diese als UTF-8 und die Bytes dann in Base64. Fügen Sie das JSON oben ein, um das Ergebnis zu sehen, oder verwenden Sie in JavaScript btoa mit einem UTF-8-Zwischenschritt und in Python base64.b64encode(json.dumps(obj).encode()).

Warum ergibt dasselbe Objekt in Python und JavaScript unterschiedliches Base64?

Ihre Serialisierer unterscheiden sich. json.dumps in Python setzt Leerzeichen nach : und , und maskiert Nicht-ASCII als \u00eb, JSON.stringify tut beides nicht. Verwenden Sie separators=(",", ":") und ensure_ascii=False, damit es übereinstimmt.

Validiert oder minifiziert dieses Tool mein JSON?

Nein, es kodiert den Text genau so, wie Sie ihn eingegeben haben, inklusive Leerraum. Minifizieren Sie das JSON vorher, wenn die Ausgabe kurz oder byte-identisch mit der eines anderen Systems sein muss.

Sollte ich für JSON in einer URL URL-sicheres Base64 verwenden?

Ja. Standard-Base64 kann +, / und = enthalten, die in URLs eine Bedeutung haben. Aktivieren Sie „URL-sicher“ und „Ohne Padding“, dasselbe Format, das JWT verwendet.