mygems

Comment formater du JSON pour le rendre lisible (guide 2026)

Une commande transforme une ligne de 40 000 caractères en JSON lisible. Dans un terminal, un éditeur, un navigateur ou sur téléphone, sans le coller dans un site.

Par mygems ·

Formater du JSON, c'est ajouter les retours à la ligne et l'indentation que la machine n'a pas pris la peine de mettre, pour qu'une ligne de 40 000 caractères prenne une forme visible. Tous les éditeurs et la plupart des terminaux savent le faire en une commande. Les seules vraies décisions : de combien indenter, et s'il faut coller les données dans un site web pour y arriver.

La réponse rapide

  • Dans un terminal : jq . file.json, ou python3 -m json.tool file.json.
  • Dans VS Code : ouvrez le fichier et appuyez sur Maj+Alt+F (Maj+Option+F sur Mac).
  • Dans un navigateur : ouvrez l'URL du .json dans Firefox, qui intègre un visualiseur JSON, et cliquez sur Pretty Print.
  • Sur téléphone : une application JSON avec une commande Beautify, plutôt que coller le texte dans un site web.
  • Il refuse de se formater : ce n'est pas encore du JSON valide. Corrigez d'abord ; le message d'erreur du formateur indique où.

Ce que le formatage change, et ne change pas

La mise en forme n'ajoute ou ne retire que des espaces entre les jetons : espaces, tabulations et retours à la ligne en dehors des chaînes. Un formateur correct ne touche jamais aux valeurs. Ces deux documents sont donc identiques :

{"id":7,"tags":["a","b"],"owner":{"name":"Ana"}}
{
  "id": 7,
  "tags": [
    "a",
    "b"
  ],
  "owner": {
    "name": "Ana"
  }
}

Minifier est l'opération inverse : supprimer chaque espace et chaque saut de ligne facultatif. C'est ce qu'on envoie sur un réseau ou qu'on colle dans un champ de configuration qui veut une seule ligne. Aucun des deux sens ne change ce que les données signifient, ce qui explique qu'on puisse reformater sans risque un fichier qu'on n'a pas écrit.

Deux opérations se trouvent à côté du formatage dans la plupart des outils et sont des modifications, même inoffensives : trier les clés, qui réordonne chaque objet par ordre alphabétique, et l'échappement, qui transforme tout le document en une seule chaîne. Faites-les exprès, pas par effet de bord.

Dans un terminal

jq est celui à avoir installé :

jq . data.json                 # pretty, 2-space indent
jq --indent 4 . data.json      # 4 spaces
jq --tab . data.json           # tabs
jq -c . data.json              # minified, one line
jq -S . data.json              # keys sorted A–Z

Pour formater un fichier sur place, écrivez dans un fichier temporaire puis remettez-le à sa place. jq . data.json > data.json vide le fichier avant que jq ne le lise.

jq . data.json > tmp.json && mv tmp.json data.json

Python fournit un formateur, il fonctionne donc sur toute machine qui a Python 3 :

python3 -m json.tool data.json
python3 -m json.tool --indent 4 --sort-keys data.json
python3 -m json.tool --compact data.json

Une différence qui compte sur des données réelles : json.tool lit les nombres comme des flottants Python s'ils ne sont pas entiers, donc une valeur comme 1.10 ressort en 1.1. jq 1.7 et les versions suivantes conservent les nombres tels qu'ils sont écrits. Si le fichier contient des prix, des numéros de version ou des identifiants dont les chiffres de tête comptent, vérifiez la sortie.

Dans un éditeur

VS Code : Maj+Alt+F formate tout le document, ou Format Selection dans la palette de commandes en formate une partie. Réglez "editor.formatOnSave": true pour les fichiers [json] si vous les modifiez souvent. L'indentation suit le réglage de taille de tabulation de l'éditeur.

Sublime Text, Notepad++, les IDE JetBrains formatent tous le JSON, soit nativement (JetBrains : Code → Reformat Code), soit avec un plugin qui s'installe en une ligne (Notepad++ : JSON Viewer ou JSTool).

Prettier est le bon outil quand le JSON de tout un projet doit avoir le même aspect : npx prettier --write "**/*.json".

Dans un navigateur

Firefox formate automatiquement toute réponse JSON, avec un onglet JSON repliable, un onglet Raw Data et un bouton Pretty Print. C'est le moyen le plus rapide de lire une réponse d'API sans rien installer.

Chrome et Edge affichent une case Pretty-print au-dessus du JSON brut dans les versions récentes. Tout le reste (replier, chercher par clé) demande une extension.

La question des formateurs en ligne

Cherchez ce sujet et la première page n'est que des sites avec une grande zone de texte. Ils fonctionnent. La question, c'est ce que vous y collez.

Une réponse d'API avec un jeton d'accès, un fichier de config avec un mot de passe de base de données, un export clients : tout cela est régulièrement collé dans des formateurs, et vous n'avez aucun moyen de vérifier depuis la page si le texte reste dans votre navigateur ou part vers un serveur pour y être journalisé. Certains sites ont aussi été pris à stocker des documents « partagés » à des URL devinables.

La règle est simple. Si vous ne le colleriez pas dans un chat public, formatez en local. Toutes les options ci-dessus tournent sur votre propre machine.

Choisir une indentation

  • 2 espaces est le choix par défaut de fait : jq, Prettier, la plupart des outils JavaScript, la plupart des docs d'API.
  • 4 espaces se lit mieux pour des documents très imbriqués sur un grand écran, et c'est la convention de Python.
  • Les tabulations laissent chaque lecteur choisir sa largeur, et rendent les fichiers un peu plus légers.

Aucune n'est mauvaise. Choisissez-en une par projet et laissez un formateur l'imposer, pour qu'un diff montre des changements de données plutôt que des changements d'espaces.

Sur iPhone et iPad

Un téléphone est l'endroit où le JSON est le moins lisible, car iOS affiche un fichier .json en texte brut, sans retour à la ligne. Les façons d'en ouvrir un sont décrites ici ; le formatage vient après.

Dans Smart Json, Beautify reformate le document avec une indentation cohérente, Minify le réduit à une ligne, et Sort keys A–Z réordonne chaque objet. L'annulation fonctionne pour les trois. Si le texte ne se parse pas, un bandeau nomme le problème avec sa ligne et sa colonne au lieu de formater quelque chose de à moitié valide, et Fix répare les suspects habituels : commentaires, virgules finales, apostrophes simples et clés sans guillemets.

Le menu d'actions du document au-dessus d'un document JSON minifié, avec Beautify, Minify, Sort keys A–Z et Auto-fix syntax sous Format
Format : Beautify, Minify, Sort keys
Le même document de commandes après Beautify, indenté sur 38 lignes numérotées, avec Valid JSON, depth 6 dans la barre d'état
Le document d'une seule ligne, après Beautify
JSON Editor: Smart JsoniPhone et iPad

Beautify, Minify et Sort keys sur iPhone et iPad, hors ligne, avec une erreur en langage clair quand le JSON est cassé. Rien n'est collé dans un site web.

Ce que ça fait

Quand le formatage échoue

Un formateur refuse tout ce qui n'est pas du JSON valide, et son erreur est généralement une position : line 1, column 3,912. Sur un document minifié, il n'y a qu'une ligne, donc c'est la colonne qui sert d'indice. Les causes habituelles sont une virgule finale, des apostrophes simples, un commentaire ou une valeur sans guillemets. Chaque erreur courante est expliquée ici, avec ce que signifie chaque message.

Questions

Comment formater du JSON pour le rendre lisible (pretty print) ?
Dans un terminal, lancez jq . file.json ou python3 -m json.tool file.json. Dans VS Code, appuyez sur Maj+Alt+F (Maj+Option+F sur Mac). Firefox formate aussi le JSON automatiquement quand vous ouvrez une URL .json.
Formater du JSON change-t-il les données ?
Non. Le pretty-print et la minification ne changent que les espaces entre les jetons, jamais les valeurs. Le tri des clés et l'échappement sont des opérations différentes : elles réécrivent le document, même si le tri ne change pas son sens.
Un formateur JSON en ligne est-il sûr ?
Pour des données publiques, oui. Pour tout ce qui contient des jetons, des mots de passe ou des données personnelles, non : vous ne pouvez pas vérifier si le site conserve ce que vous collez. Formatez plutôt en local avec jq, Python, votre éditeur ou une application hors ligne.
Comment minifier du JSON ?
Lancez jq -c . file.json ou python3 -m json.tool --compact file.json. La plupart des éditeurs JSON ont aussi une commande Minify. La minification supprime tous les espaces et retours à la ligne facultatifs.
Pourquoi mon JSON ne se formate-t-il pas ?
Parce que ce n'est pas du JSON valide. Les formateurs ne devinent pas. Le message d'erreur donne une ligne et une colonne ; les causes habituelles sont une virgule finale, des apostrophes simples, un commentaire ou une clé sans guillemets.
Faut-il indenter le JSON avec 2 ou 4 espaces ?
L'un ou l'autre. Deux espaces est le réglage le plus courant dans les outils JavaScript et la documentation d'API ; quatre est courant dans les projets Python. Ce qui compte, c'est d'en utiliser un seul de façon cohérente, imposé par un formateur.

mygems — Développe Smart Json, un éditeur JSON pour iPhone et iPad qui affiche un document en texte, en arbre et en graphe.