Qu'est-ce que JSON
JSON (JavaScript Object Notation) est un format d'échange de données léger. La communication frontend-backend, les fichiers de configuration et les réponses d'API utilisent tous JSON. Structure claire, lisible par l'homme et analysable par la machine, c'est le standard de fait du développement moderne.
Règles de syntaxe JSON
Types de données
- Chaîne : entre guillemets doubles, par exemple "hello"
- Nombre : entier ou flottant, par exemple 42, 3.14
- Booléen : true ou false
- Valeur nulle : null
- Tableau : entre crochets, par exemple [1, 2, 3]
- Objet : entre accolades, paires clé-valeur, par exemple {"name": "Tom"}
- Imbrication : objets et tableaux peuvent s'emboîter mutuellement
Règles de base
- Les clés doivent être entre guillemets doubles (pas simples)
- Les chaînes doivent être entre guillemets doubles
- Pas de virgule finale (aucune virgule après le dernier élément)
- Pas de commentaires
- Au niveau supérieur, uniquement un objet ou un tableau
Les trois besoins du formatage
Validation
Vérifier que la syntaxe JSON est correcte. Une virgule manquante, une virgule en trop, des guillemets non appairés provoquent un échec d'analyse.
Embellissement (Pretty Print)
Développer un JSON compressé en une seule ligne en un format multi-lignes indenté, lisible par l'humain.
Forme compressée :
{"name":"Tom","age":20,"tags":["a","b"]}
Embelli :
{
"name": "Tom",
"age": 20,
"tags": ["a", "b"]
}
Minification
Supprimer tous les espaces et sauts de ligne du format embellissement pour compresser en une seule ligne, réduisant la taille. Utilisé pour le transport et le stockage.
Erreurs JSON courantes
Erreurs de guillemets
- Guillemets simples utilisés : JSON n'autorise que les guillemets doubles
- Guillemets non fermés
- Noms de clés sans guillemets
Incorrect : {'name': 'Tom'} (guillemets simples) Correct : {"name": "Tom"}
Erreurs de virgule
- Virgule finale : une virgule en trop après le dernier élément
- Virgule oubliée : oubli de la virgule entre les éléments
Incorrect : {"a": 1, "b": 2,} (virgule finale) Correct : {"a": 1, "b": 2}
Erreurs de type de données
- Utilisation de undefined (JSON n'a pas undefined, utiliser null)
- Utilisation de NaN / Infinity (JSON ne les supporte pas)
- Les fonctions et objets Date ne peuvent pas être sérialisés directement
Erreurs d'échappement
Les caractères spéciaux dans les chaînes doivent être échappés :
- Guillemet : "
- Barre oblique inverse : \
- Saut de ligne : \n
- Tabulation : \t
- Retour chariot : \r
Incorrect : "He said "hello"" (guillemets non échappés) Correct : "He said "hello""
Erreurs d'encodage
JSON doit utiliser l'encodage UTF-8. D'autres encodages peuvent provoquer des caractères chinois illisibles ou un échec d'analyse.
Imbrication et niveaux
Exemple d'imbrication
{
"user": {
"name": "Tom",
"address": {
"city": "Pékin",
"zip": "100000"
}
},
"orders": [
{"id": 1, "items": ["A", "B"]},
{"id": 2, "items": ["C"]}
]
}
Indentation
- Indentation 2 espaces : la plus courante
- Indentation 4 espaces : plus aérée
- Indentation par tabulation : certaines équipes l'utilisent
Lors de l'embellissement, unifier le style d'indentation.
Imbrication profonde
Au-delà de 5 niveaux d'imbrication, la lecture devient difficile. Envisager d'aplatir la structure ou de la scinder.
JSON et autres formats
JSON vs JSONL
- JSON : un seul JSON pour tout le fichier (généralement un objet ou un tableau)
- JSONL (JSON Lines) : un JSON indépendant par ligne, adapté aux logs et données en flux
JSON vs JSON5
JSON5 est un sur-ensemble de JSON, qui prend en charge :
- Les guillemets simples
- Les virgules finales
- Les commentaires
- Les nombres hexadécimaux
Mais JSON5 n'est pas du JSON standard, la compatibilité des analyseurs est limitée.
JSON vs YAML
- JSON : syntaxe stricte, adapté aux machines
- YAML : syntaxe souple (commentaires, indentation pour la hiérarchie), adapté aux humains
- Les fichiers de configuration utilisent souvent YAML, le transport API utilise JSON
JSON vs XML
- JSON : léger, sans surcharge de balises
- XML : balises verbeuses, mais supporte attributs et espaces de noms
- Dans le développement moderne, JSON a largement remplacé XML
Astuces pratiques
Copier du JSON
Copiez du JSON depuis une réponse d'API ou un log, collez-le dans un outil de formatage pour l'embellir, plus facile à lire.
Déboguer du JSON
Si une interface renvoie une erreur, formatez le JSON de réponse puis vérifiez si les champs sont corrects.
Fichiers de configuration
Écrivez les fichiers de configuration en JSON, puis formatez-les et annotez chaque champ (notez que le JSON standard ne supporte pas les commentaires, utilisez JSONC ou une documentation séparée).
Conversion de données
Pour CSV vers JSON, XML vers JSON, etc., formatez et validez le résultat après conversion.
Utilisez l'outil CSV vers JSON pour convertir en un clic des données tabulaires en JSON.
Utilisation de l'outil de formatage
Validation
Collez le JSON, l'outil vérifie la syntaxe. En cas d'erreur, il indique l'emplacement et la cause.
Embellissement
Collez le JSON compressé, choisissez l'indentation, cliquez sur embellir, sortie au format multi-lignes.
Minification
Collez le JSON embellissement, cliquez sur minifier, sortie en une seule ligne.
Échappement
Échappez les caractères spéciaux dans la chaîne JSON, ou effectuez l'opération inverse.
Traiter JSON avec DocsAll
JSON implique encodage et conversion, des outils associés sont disponibles :
- Outil d'encodage/décodage : traiter l'échappement des chaînes JSON
- Outil CSV vers JSON : tableur vers JSON
Traitement côté navigateur, données non téléchargées.
Questions fréquentes
Après formatage, le chinois devient \uXXXX
Certains outils échappent le chinois par défaut. Pour afficher le chinois original, désactivez l'option d'échappement Unicode.
Gros JSON qui ralentit
Pour un JSON très volumineux (plusieurs Mo), le formatage peut ramer. Utilisez un outil en ligne de commande (comme jq) pour plus d'efficacité.
Que faire avec les commentaires
Le JSON standard ne supporte pas les commentaires. Pour des commentaires, utilisez JSONC, JSON5 ou YAML.
Résumé
Le formatage JSON repose sur trois choses essentielles : valider la syntaxe, embellir pour la lisibilité, minifier pour le transport. Les erreurs courantes concernent les guillemets, les virgules et l'échappement. Pour traiter JSON, utilisez l'outil d'encodage/décodage DocsAll et l'outil CSV vers JSON, exécutés côté navigateur, données non transmises.