Comment décoder du Base64 en JSON
- Collez le Base64 dans Entrée · Base64. La page se charge avec un exemple que vous pouvez remplacer.
- Le JSON apparaît dans Sortie · texte, indenté de deux espaces. Formater le JSON est activé par défaut ; décochez-le pour voir le texte décodé exact.
- Vérifiez la ligne d’état : Ressemble à JSON signifie que le résultat a été analysé comme du JSON valide.
- Copier la sortie copie le JSON formaté. Télécharger enregistre les octets décodés d’origine sous le nom
decoded.json.
L’exemple eyJpZCI6NDIsIm5hbWUiOiJiYXNlNjRodWIiLCJ0YWdzIjpbImpzb24iLCJkZWNvZGUiXSwiYWN0aXZlIjp0cnVlfQ== se décode et se formate ainsi :
{
"id": 42,
"name": "base64hub",
"tags": [
"json",
"decode"
],
"active": true
}
Pour aller dans l’autre sens, utilisez JSON en Base64.
Repérer du JSON dans du Base64
Le JSON commence presque toujours par { ou [, et ces octets produisent quelques débuts reconnaissables :
| Le Base64 commence par | Début décodé | Source typique |
|---|---|---|
eyJ | {" + une lettre | Objets compacts, en-tête et payload de JWT |
eyI | {" + un chiffre ou un symbole | Objets dont la première clé commence par un chiffre |
eyAi | { " | Objets avec espaces |
ewog | { + saut de ligne + espaces | Fichiers formatés |
W3s | [{ | Tableaux d’objets |
WyJ | [" + une lettre | Tableaux de chaînes |
Ainsi, eyJhIjoxfQ== correspond à {"a":1} et W3siYSI6MX1d à [{"a":1}]. La page des préfixes Base64 courants présente d’autres motifs de ce genre pour d’autres formats.
D’où vient le JSON encodé en Base64
- L’en-tête et le payload d’un JSON Web Token (JWT) sont du JSON encodé en Base64URL, séparés par des points. Collez un segment ici, ou le jeton entier dans le décodeur JWT. Base64 dans les JWT explique le format.
- Certaines API et certains webhooks transmettent des métadonnées structurées, des curseurs de pagination ou des charges utiles d’événements sous forme de chaînes Base64 à l’intérieur d’un autre document JSON. Si vous avez le document extérieur, décoder le Base64 dans du JSON trouve et décode tous ces champs d’un coup.
- Un Secret Kubernetes
.dockerconfigjsonstocke les identifiants d’un registre de conteneurs sous forme de Base64 d’un document JSON qui contient lui-même des valeursauthen Base64 ; le décodeur de Docker config JSON déballe les deux couches. - Les variables d’environnement et les secrets de CI transportent souvent une configuration JSON sur une seule ligne Base64 pour éviter les problèmes de guillemets.
Une entrée URL-safe (- et _, sans remplissage) est acceptée automatiquement : les segments de jetons se décodent donc tels quels.
Quand le JSON ne se formate pas
Le formatage exige du JSON valide. Quand l’analyse échoue, le texte décodé est affiché sans modification, ce qui suffit en général pour voir le problème :
- Les données sont tronquées et le texte s’arrête au milieu d’une valeur. Vérifiez que vous avez copié toute la chaîne Base64 ; Réparer du Base64 aide quand des sauts de ligne ou des guillemets s’y sont mêlés.
- Le texte n’est pas tout à fait du JSON. Les guillemets simples, les virgules finales (
{"a":1,}donneeyJhIjoxLH0=) et les commentaires sont courants dans la configuration écrite à la main, mais invalides en JSON. - Le jeu de caractères est mauvais. Le JSON est en UTF-8 par définition (RFC 8259) : si les caractères accentués s’affichent mal, le producteur a utilisé un autre encodage ; essayez Jeu de caractères.
- La charge utile est compressée. Si la sortie est illisible et que le Base64 commence par
H4sI, le JSON a été compressé avec gzip avant l’encodage. Utilisez le décodeur Base64 gzip.
Base64 en JSON dans le code
import base64, json
s = "eyJpZCI6NDIsIm5hbWUiOiJiYXNlNjRodWIiLCJ0YWdzIjpbImpzb24iLCJkZWNvZGUiXSwiYWN0aXZlIjp0cnVlfQ=="
data = json.loads(base64.b64decode(s))
print(json.dumps(data, indent=2))
json.loads accepte directement les octets. En JavaScript, décodez en octets puis passez par TextDecoder, car JSON.parse(atob(s)) abîme tous les caractères non ASCII :
const s = "eyJuYW1lIjoiYmFzZTY0aHViIn0=";
const json = new TextDecoder().decode(Uint8Array.from(atob(s), c => c.charCodeAt(0)));
JSON.parse(json).name; // "base64hub"
Voir Base64 en Python et Base64 en JavaScript pour les variantes URL-safe.
FAQ
Comment décoder du Base64 en JSON ?
Collez le Base64 ci-dessus. Le JSON décodé est formaté, et Télécharger l’enregistre sous le nom decoded.json. Dans du code : json.loads(base64.b64decode(s)) en Python, JSON.parse(Buffer.from(s, "base64").toString()) en Node.js.
Pourquoi mon JSON n'est-il pas formaté ?
Le texte décodé n’est pas du JSON valide : il est donc affiché tel quel. Les causes typiques sont une chaîne tronquée, des guillemets simples, une virgule finale ou des commentaires. Le champ « Ressemble à » indique alors Texte au lieu de JSON.
Comment savoir qu'une chaîne Base64 contient du JSON ?
La plupart des objets JSON s’encodent en une chaîne qui commence par eyJ, c’est-à-dire {" suivi d’une lettre. Les tableaux d’objets commencent par W3s, et le JSON formaté commence souvent par ewog.
Puis-je décoder ici le payload d'un JWT ?
Oui, collez le segment du milieu (entre les deux points). Pour le jeton complet avec les dates d’expiration et la vérification de signature, utilisez le décodeur JWT.