So dekodieren Sie Base64 in JSON
- Fügen Sie das Base64 in Eingabe · Base64 ein. Die Seite startet mit einem Beispiel, das Sie ersetzen können.
- Das JSON erscheint in Ausgabe · Text, mit zwei Leerzeichen eingerückt. JSON formatieren ist standardmäßig aktiv; deaktivieren Sie es, um den exakten dekodierten Text zu sehen.
- Prüfen Sie die Statuszeile: Steht bei Sieht aus wie JSON, wurde das Ergebnis als gültiges JSON geparst.
- Ausgabe kopieren kopiert das formatierte JSON. Herunterladen speichert die originalen dekodierten Bytes als
decoded.json.
Das Beispiel eyJpZCI6NDIsIm5hbWUiOiJiYXNlNjRodWIiLCJ0YWdzIjpbImpzb24iLCJkZWNvZGUiXSwiYWN0aXZlIjp0cnVlfQ== ergibt dekodiert und formatiert:
{
"id": 42,
"name": "base64hub",
"tags": [
"json",
"decode"
],
"active": true
}
Für die Gegenrichtung nutzen Sie JSON in Base64.
JSON in Base64 erkennen
JSON beginnt fast immer mit { oder [, und diese Bytes erzeugen ein paar wiedererkennbare Anfänge:
| Base64 beginnt mit | Dekodierter Anfang | Typische Quelle |
|---|---|---|
eyJ | {" + ein Buchstabe | Kompakte Objekte, Header und Payload von JWTs |
eyI | {" + eine Ziffer oder ein Symbol | Objekte, deren erster Schlüssel mit einer Ziffer beginnt |
eyAi | { " | Objekte mit Leerzeichen |
ewog | { + Zeilenumbruch + Leerzeichen | Formatierte Dateien |
W3s | [{ | Arrays von Objekten |
WyJ | [" + ein Buchstabe | Arrays von Strings |
eyJhIjoxfQ== ist also {"a":1} und W3siYSI6MX1d ist [{"a":1}]. Die Seite gängige Base64-Präfixe enthält weitere solche Muster für andere Formate.
Woher Base64-kodiertes JSON kommt
- Header und Payload eines JSON Web Token (JWT) sind Base64URL-kodiertes JSON, getrennt durch Punkte. Fügen Sie ein Segment hier ein oder das ganze Token in den JWT-Decoder. Base64 in JWT erklärt das Format.
- Manche APIs und Webhooks übergeben strukturierte Metadaten, Paginierungs-Cursor oder Event-Payloads als Base64-Zeichenketten innerhalb eines anderen JSON-Dokuments. Haben Sie das äußere Dokument, findet und dekodiert Base64 in JSON dekodieren alle solchen Felder auf einmal.
- Ein Kubernetes-Secret
.dockerconfigjsonspeichert Zugangsdaten für Container-Registries als Base64 eines JSON-Dokuments, das selbst Base64-Werteauthenthält; der Docker-config-JSON-Decoder entpackt beide Schichten. - Umgebungsvariablen und CI-Secrets transportieren eine JSON-Konfiguration oft als eine Base64-Zeile, um Probleme mit Anführungszeichen zu vermeiden.
URL-sichere Eingaben (- und _, ohne Padding) werden automatisch akzeptiert, Token-Segmente lassen sich also unverändert dekodieren.
Wenn sich das JSON nicht formatieren lässt
Zum Formatieren braucht es gültiges JSON. Scheitert das Parsen, wird der dekodierte Text unverändert angezeigt, und das reicht meist, um das Problem zu sehen:
- Die Daten sind abgeschnitten, und der Text endet mitten in einem Wert. Prüfen Sie, ob Sie die ganze Base64-Zeichenkette kopiert haben; Base64 reparieren hilft, wenn Zeilenumbrüche oder Anführungszeichen hineingeraten sind.
- Der Text ist nicht ganz JSON. Einfache Anführungszeichen, Kommas am Ende (
{"a":1,}isteyJhIjoxLH0=) und Kommentare sind in handgeschriebener Konfiguration häufig, in JSON aber ungültig. - Der Zeichensatz stimmt nicht. JSON ist per Definition UTF-8 (RFC 8259); sehen Umlaute also falsch aus, hat der Erzeuger eine andere Kodierung verwendet; probieren Sie Zeichensatz.
- Die Payload ist komprimiert. Ist die Ausgabe unlesbar und beginnt das Base64 mit
H4sI, wurde das JSON vor dem Kodieren mit gzip komprimiert. Nutzen Sie den gzip-Base64-Decoder.
Base64 in JSON im Code
import base64, json
s = "eyJpZCI6NDIsIm5hbWUiOiJiYXNlNjRodWIiLCJ0YWdzIjpbImpzb24iLCJkZWNvZGUiXSwiYWN0aXZlIjp0cnVlfQ=="
data = json.loads(base64.b64decode(s))
print(json.dumps(data, indent=2))
json.loads akzeptiert die Bytes direkt. In JavaScript dekodieren Sie zu Bytes und dann durch TextDecoder, denn JSON.parse(atob(s)) verstümmelt alle Nicht-ASCII-Zeichen:
const s = "eyJuYW1lIjoiYmFzZTY0aHViIn0=";
const json = new TextDecoder().decode(Uint8Array.from(atob(s), c => c.charCodeAt(0)));
JSON.parse(json).name; // "base64hub"
URL-sichere Varianten finden Sie unter Base64 in Python und Base64 in JavaScript.
Häufige Fragen
Wie dekodiere ich Base64 in JSON?
Fügen Sie das Base64 oben ein. Das dekodierte JSON wird formatiert, und Herunterladen speichert es als decoded.json. Im Code: json.loads(base64.b64decode(s)) in Python, JSON.parse(Buffer.from(s, "base64").toString()) in Node.js.
Warum wird mein JSON nicht formatiert?
Der dekodierte Text ist kein gültiges JSON und wird daher unverändert angezeigt. Typische Ursachen sind eine abgeschnittene Zeichenkette, einfache Anführungszeichen, ein Komma am Ende oder Kommentare. Das Feld „Sieht aus wie“ zeigt dann Text statt JSON.
Woran erkenne ich, dass eine Base64-Zeichenkette JSON ist?
Die meisten JSON-Objekte ergeben eine Zeichenkette, die mit eyJ beginnt, also {" gefolgt von einem Buchstaben. Arrays von Objekten beginnen mit W3s, und formatiertes JSON beginnt oft mit ewog.
Kann ich hier die Payload eines JWT dekodieren?
Ja, fügen Sie das mittlere Segment ein (zwischen den beiden Punkten). Für das ganze Token mit Ablaufdaten und Signaturprüfung nutzen Sie den JWT-Decoder.