Comment formater JSON : Guide complet avec outils et techniques
Maîtrisez le formatage JSON avec des techniques, outils et bonnes pratiques. Apprenez l'indentation, la validation et la beautification de vos données JSON.
Big JSON Team
• Technical WriterExpert in JSON data manipulation, API development, and web technologies. Passionate about creating tools that make developers' lives easier.
# Comment formater JSON : Guide complet avec outils et techniques
Le formatage JSON correct est essentiel pour la lisibilité, la maintenance et le débogage de vos données. Ce guide vous apprend tout ce qu'il faut savoir sur le formatage JSON.
Pourquoi formater JSON ?
Problèmes du JSON non formaté
JSON minifié (illisible) :\\\json
{"utilisateur":{"id":1,"nom":"Jean Dupont","email":"jean@exemple.com","adresse":{"rue":"123 Rue Principale","ville":"Paris","codePostal":"75001"},"roles":["admin","utilisateur"],"actif":true}}
\\\
\\\json
{
"utilisateur": {
"id": 1,
"nom": "Jean Dupont",
"email": "jean@exemple.com",
"adresse": {
"rue": "123 Rue Principale",
"ville": "Paris",
"codePostal": "75001"
},
"roles": ["admin", "utilisateur"],
"actif": true
}
}
\\\
Avantages du formatage
- Lisibilité améliorée : Structure claire et facile à comprendre
- Débogage facilité : Repérage rapide des erreurs
- Collaboration : Code plus maintenable en équipe
- Validation : Détection des erreurs de syntaxe
Règles de formatage JSON
1. Indentation
Indentation recommandée : 2 espaces\\\json
{
"niveau1": {
"niveau2": {
"niveau3": "valeur"
}
}
}
\\\
\\\json
{
"niveau1": {
"niveau2": {
"niveau3": "valeur"
}
}
}
\\\
❌ À éviter : tabulations
\\\json
{
"clé": "valeur"
}
\\\
2. Espacement
Après les deux-points :\\\json
{
"nom": "Jean",
"age": 30
}
\\\
❌ Sans espace :
\\\json
{
"nom":"Jean",
"age":30
}
\\\
\\\json
{
"couleurs": ["rouge", "vert", "bleu"],
"nombres": [1, 2, 3, 4, 5]
}
\\\
3. Sauts de ligne
Pour les objets :\\\json
{
"utilisateur": {
"nom": "Jean",
"age": 30,
"email": "jean@exemple.com"
}
}
\\\
\\\json
{
"tags": ["json", "formatage", "tutoriel"]
}
\\\
\\\json
{
"utilisateurs": [
{
"id": 1,
"nom": "Alice"
},
{
"id": 2,
"nom": "Bob"
},
{
"id": 3,
"nom": "Charlie"
}
]
}
\\\
4. Ordre des clés
Alphabétique (recommandé pour configuration) :\\\json
{
"actif": true,
"age": 30,
"email": "jean@exemple.com",
"nom": "Jean Dupont"
}
\\\
\\\json
{
"id": 1,
"nom": "Jean Dupont",
"email": "jean@exemple.com",
"age": 30,
"actif": true
}
\\\
Formatage avec JavaScript
JSON.stringify()
\\\javascript
const donnees = {
nom: "Jean Dupont",
age: 30,
ville: "Paris"
};
// Sans formatage
console.log(JSON.stringify(donnees));
// {"nom":"Jean Dupont","age":30,"ville":"Paris"}
// Avec indentation de 2 espaces
console.log(JSON.stringify(donnees, null, 2));
/
{
"nom": "Jean Dupont",
"age": 30,
"ville": "Paris"
}
/
// Avec indentation de 4 espaces
console.log(JSON.stringify(donnees, null, 4));
\\\
Formatage personnalisé avec replacer
\\\javascript
const donnees = {
nom: "Jean",
age: 30,
motDePasse: "secret123",
email: "jean@exemple.com"
};
// Filtrer certaines clés
const jsonFormate = JSON.stringify(donnees, (cle, valeur) => {
// Masquer le mot de passe
if (cle === "motDePasse") {
return "**";
}
return valeur;
}, 2);
console.log(jsonFormate);
/
{
"nom": "Jean",
"age": 30,
"motDePasse": "**",
"email": "jean@exemple.com"
}
/
\\\
Tri des clés
\\\javascript
function stringifyTrie(obj, espace = 2) {
return JSON.stringify(obj, (cle, valeur) => {
if (valeur && typeof valeur === 'object' && !Array.isArray(valeur)) {
return Object.keys(valeur)
.sort()
.reduce((tri, k) => {
tri[k] = valeur[k];
return tri;
}, {});
}
return valeur;
}, espace);
}
const donnees = {
z: 1,
a: 2,
m: 3
};
console.log(stringifyTrie(donnees));
/
{
"a": 2,
"m": 3,
"z": 1
}
/
\\\
Formatage avec Python
Module json
\\\python
import json
donnees = {
"nom": "Jean Dupont",
"age": 30,
"ville": "Paris"
}
# Formatage avec indentation
json_formate = json.dumps(donnees, indent=2, ensure_ascii=False)
print(json_formate)
# {
# "nom": "Jean Dupont",
# "age": 30,
# "ville": "Paris"
# }
# Tri des clés
json_trie = json.dumps(donnees, indent=2, sort_keys=True, ensure_ascii=False)
print(json_trie)
\\\
Formatage avancé
\\\python
import json
donnees = {
"utilisateurs": [
{"nom": "Alice", "age": 28},
{"nom": "Bob", "age": 35}
]
}
# Options complètes
json_formate = json.dumps(
donnees,
indent=2, # Indentation 2 espaces
sort_keys=True, # Trier les clés
ensure_ascii=False, # Permettre caractères Unicode
separators=(',', ': ') # Séparateurs personnalisés
)
print(json_formate)
\\\
Outils en ligne de commande
jq (Linux/Mac/Windows)
\\\bash
# Formater un fichier JSON
jq . fichier.json
# Formater avec indentation spécifique
jq --indent 4 . fichier.json
# Formater et trier les clés
jq -S . fichier.json
# Minifier JSON
jq -c . fichier.json
# Sauvegarder le résultat
jq . fichier.json > fichier-formate.json
\\\
Python (intégré)
\\\bash
# Formater avec Python
python -m json.tool fichier.json
# Avec sortie vers fichier
python -m json.tool fichier.json > fichier-formate.json
# Avec tri des clés
python -m json.tool --sort-keys fichier.json
\\\
Node.js
\\\bash
# Créer un script de formatage
node -e "console.log(JSON.stringify(require('./fichier.json'), null, 2))"
\\\
Éditeurs et IDE
Visual Studio Code
Formatage automatique :- Windows/Linux :
Shift + Alt + F - Mac :
Shift + Option + F
\\\json
{
"editor.formatOnSave": true,
"editor.defaultFormatter": "vscode.json-language-features",
"[json]": {
"editor.tabSize": 2,
"editor.insertSpaces": true
}
}
\\\
Sublime Text
Package : Pretty JSONRaccourcis :
- Formatage :
Cmd+Ctrl+J(Mac) ouCtrl+Alt+J(Windows) - Minification :
Cmd+Ctrl+M(Mac)
IntelliJ IDEA / WebStorm
Formatage :- Windows/Linux :
Ctrl + Alt + L - Mac :
Cmd + Option + L
Outils en ligne
1. JSONLint
- URL : jsonlint.com
- Validation et formatage
- Détection d'erreurs
2. JSON Formatter & Validator
- URL : jsonformatter.curiousconcept.com
- Formatage en temps réel
- Visualisation en arbre
3. Code Beautify
- URL : codebeautify.org/jsonviewer
- Multi-fonctions
- Conversion vers autres formats
Validation pendant le formatage
Erreurs courantes
1. Virgule finale (trailing comma) :\\\json
{
"nom": "Jean",
"age": 30, // ❌ Virgule finale
}
\\\
\\\json
{
"nom": "Jean",
"age": 30
}
\\\
\\\json
{
'nom': 'Jean' // ❌ Guillemets simples
}
\\\
\\\json
{
"nom": "Jean"
}
\\\
\\\json
{
// Ceci est un commentaire // ❌ Commentaires non supportés
"nom": "Jean"
}
\\\
\\\json
{
"_commentaire": "Ceci est une note",
"nom": "Jean"
}
\\\
Formatage automatisé
Git pre-commit hook
\\\bash
#!/bin/bash
# .git/hooks/pre-commit
# Formater tous les fichiers JSON
for file in $(git diff --cached --name-only | grep -E '\.json$'); do
jq . "$file" > "$file.tmp" && mv "$file.tmp" "$file"
git add "$file"
done
\\\
Package.json scripts
\\\json
{
"scripts": {
"format:json": "prettier --write '*/.json'",
"validate:json": "jsonlint -q */.json",
"format": "npm run format:json"
},
"devDependencies": {
"prettier": "^3.0.0",
"jsonlint": "^1.6.3"
}
}
\\\
Prettier configuration
.prettierrc.json :\\\json
{
"tabWidth": 2,
"useTabs": false,
"semi": true,
"singleQuote": false,
"trailingComma": "none",
"bracketSpacing": true,
"printWidth": 80
}
\\\
Meilleures pratiques
1. Cohérence
Utilisez toujours le même style dans tout le projet :
- Indentation : 2 ou 4 espaces
- Ordre des clés : alphabétique ou logique
- Format des tableaux : inline ou multi-lignes
2. Automatisation
Configurez votre éditeur pour formater automatiquement :
- Format on save
- Pre-commit hooks
- CI/CD validation
3. Documentation
Documentez votre convention de formatage :
\\\markdown
Convention JSON
- Indentation : 2 espaces
- Ordre des clés : alphabétique
- Tableaux courts : inline (<3 éléments)
- Tableaux longs : multi-lignes
\
4. Validation
Utilisez des outils de validation :
- JSON Schema
- ESLint plugins
- CI/CD checks
Formatage pour différents contextes
Configuration files
package.json - Indentation 2 espaces, ordre logique :\\\json
{
"name": "mon-projet",
"version": "1.0.0",
"description": "Description du projet",
"main": "index.js",
"scripts": {
"start": "node index.js",
"test": "jest"
},
"dependencies": {
"express": "^4.18.0"
}
}
\\\
API responses
Compact pour production :\\\json
{"status":"success","data":{"users":[{"id":1,"name":"Alice"}]}}
\\\
\\\json
{
"status": "success",
"data": {
"users": [
{
"id": 1,
"name": "Alice"
}
]
}
}
\\\
Fichiers de données
Formaté pour lisibilité :\\\json
{
"produits": [
{
"id": "P001",
"nom": "Laptop",
"prix": 999.99,
"enStock": true
},
{
"id": "P002",
"nom": "Souris",
"prix": 25.99,
"enStock": true
}
]
}
\\\
Conclusion
Le formatage JSON correct est crucial pour :
- Lisibilité : Code facile à comprendre
- Maintenance : Modifications simplifiées
- Collaboration : Standards d'équipe
- Qualité : Moins d'erreurs
Maîtrisez ces techniques et votre code JSON sera toujours propre, lisible et professionnel.
Articles Connexes
Qu'est-ce que JSON ? Définition et bases
Apprenez la définition, l'histoire et la structure de JSON. Guide complet pour débutants, types de données, règles de syntaxe, exemples pratiques.
Meilleurs outils JSON en ligne 2026 : Validateurs, formateurs et éditeurs
Découvrez les meilleurs outils JSON en ligne pour valider, formater, convertir et éditer vos données JSON. Guide complet avec comparaisons et exemples pratiques.
Guide complet JSON Beautifier : Embellir et formater votre JSON
Maîtrisez les JSON beautifiers pour améliorer la lisibilité de vos données. Outils, techniques et meilleures pratiques pour un JSON parfaitement formaté.