FAQ Formateur & Validateur JSON
Q: What is a JSON formatter?
A: What is a JSON formatter?
Un formateur JSON est un outil qui prend des données JSON brutes, minifiées ou mal formatées et les reformate avec une indentation, des sauts de ligne et des espaces appropriés afin de les rendre lisibles par un humain. La plupart des formateurs JSON incluent également la validation, la coloration syntaxique, la détection d'erreurs et parfois des fonctionnalités supplémentaires comme le tri des clés, la minification et la navigation en arborescence. Notre formateur JSON en ligne gratuit combine le formatage et la validation dans un seul outil, vous offrant une sortie propre et instantanée avec un rapport d'erreurs détaillé.
Q: Why is my JSON invalid?
A: Why is my JSON invalid?
Le JSON est invalide lorsqu'il viole les rÚgles strictes de la spécification JSON. Les causes les plus courantes incluent :
- Les virgules de fin aprÚs le dernier élément d'un objet ou d'un tableau
- Les guillemets doubles manquants autour des clés d'objet ou des valeurs de chaßne
- Les guillemets simples utilisés à la place des guillemets doubles (les guillemets simples ne sont pas valides en JSON)
- Les caractÚres spéciaux non échappés, comme des barres obliques inverses ou des guillemets non échappés à l'intérieur des chaßnes
- Les valeurs invalides comme
undefined,NaNouInfinity(qui n'ont pas d'équivalent en JSON) - Les accolades ou crochets non appariés, lorsque
{/}ou[/]ne sont pas correctement associés
Utilisez un validateur JSON pour localiser précisément l'emplacement et la nature des erreurs de syntaxe. La plupart des validateurs signalent la ligne, la colonne et un message d'erreur descriptif pour la premiÚre erreur rencontrée.
Q: What is the difference between JSON and JavaScript objects?
A: What is the difference between JSON and JavaScript objects?
Bien que la syntaxe JSON soit dĂ©rivĂ©e de la syntaxe des littĂ©raux d'objets JavaScript, il ne s'agit pas de la mĂȘme chose. Les diffĂ©rences clĂ©s incluent :
- Les clĂ©s doivent ĂȘtre entre guillemets doubles -- JSON exige
{"key": "value"}, tandis que JavaScript autorise{key: "value"}(sans guillemets) et{'key': 'value'}(avec guillemets simples). - Les valeurs de chaĂźne doivent utiliser des guillemets doubles -- JSON n'autorise que les guillemets doubles pour les chaĂźnes. JavaScript accepte Ă la fois les guillemets simples et doubles.
- Pas de virgule de fin -- JSON interdit les virgules de fin aprÚs le dernier élément. JavaScript les autorise.
- Types de données limités -- JSON ne prend en charge que les chaßnes, les nombres, les booléens, null, les objets et les tableaux. Les objets JavaScript peuvent contenir des fonctions,
undefined,Date,Map,Setet d'autres types spéciaux. - Pas de commentaires -- JSON ne prend pas en charge les commentaires. Les objets JavaScript dans le code source peuvent avoir des commentaires.
Cela signifie que vous ne pouvez pas simplement Ă©crire un objet JavaScript et l'appeler JSON -- il doit ĂȘtre sĂ©rialisĂ© avec JSON.stringify() ou Ă©crit conformĂ©ment aux rĂšgles JSON strictes.
Q: Can JSON have comments?
A: Can JSON have comments?
Non, la spécification JSON officielle (RFC 8259) ne prend pas en charge les commentaires. JSON a été conçu comme un format d'échange de données minimal et indépendant du langage, et les commentaires ont été volontairement exclus pour garder les analyseurs simples et cohérents entre les langages.
Si vous avez besoin de commentaires, vous avez plusieurs options :
- JSONC (JSON avec commentaires) -- Utilisé par VS Code et d'autres outils pour les fichiers de configuration. JSONC autorise les commentaires de ligne
//et les commentaires de bloc/* */. - YAML ou TOML -- Des formats de configuration alternatifs qui prennent en charge les commentaires nativement.
- Métadonnées par convention -- Utilisez une clé comme
"_comment"ou"//"dans vos objets JSON pour stocker des notes lisibles par un humain. Notez que cela ajoute des données à votre charge utile. - Supprimer les commentaires avant l'analyse -- Utilisez une étape de prétraitement pour retirer les commentaires avant de passer le JSON à un analyseur strict.
Q: How do I validate JSON online?
Q: How do I validate JSON online?
A: How do I validate JSON online?
Valider du JSON en ligne est simple :
- Copiez vos données JSON
- Collez-les dans un outil de validation JSON
- Cliquez sur le bouton de validation ou de formatage
- L'outil indiquera soit que le JSON est valide, soit affichera une erreur avec l'emplacement exact et la description du problĂšme
Un bon validateur JSON doit :
- Valider la syntaxe conformément à la spécification JSON officielle (RFC 8259)
- Afficher le numéro de ligne et de colonne des erreurs
- Fournir un message d'erreur descriptif expliquant ce qui n'a pas fonctionné
- Formater et embellir facultativement le JSON en mĂȘme temps
- Mettre en évidence la syntaxe avec un code couleur pour les différents types de données
Pour les données volumineuses ou sensibles, de nombreux validateurs en ligne traitent tout cÎté client dans votre navigateur, ce qui signifie que vos données ne quittent jamais votre machine.
Q: What does minified JSON mean?
A: What does minified JSON mean?
Le JSON minifié est un JSON dont tous les espaces inutiles ont été supprimés -- les espaces, les tabulations, les sauts de ligne et l'indentation sont retirés. Le résultat est une seule ligne (ou trÚs peu de lignes) de texte compact :
{"users":[{"id":1,"name":"Alice","roles":["admin"]}],"total":1}
Le JSON minifié est utilisé en production pour plusieurs raisons :
- Taille de fichier réduite -- Peut réduire la taille de la charge utile de 30 à 50 % ou plus
- Transfert réseau plus rapide -- Moins de données à transmettre signifie une latence plus faible
- Coûts de bande passante réduits -- ParticuliÚrement important pour les API à fort trafic et les applications mobiles
Le compromis est que le JSON minifié est essentiellement illisible pour les humains. Utilisez un outil d'impression JSON pour reformater le JSON minifié dans une structure lisible pour le débogage ou l'inspection.
Q: How do I pretty print JSON in the command line?
A: How do I pretty print JSON in the command line?
Plusieurs outils en ligne de commande peuvent afficher le JSON de maniĂšre lisible :
Avec jq (le plus populaire, installation séparée) :
cat file.json | jq .
Avec Python (intégré sur la plupart des systÚmes) :
python -m json.tool file.json
Avec Node.js :
node -e "const d = require('./data.json'); console.log(JSON.stringify(d, null, 2));"
Avec curl (affichage lisible d'une réponse API) :
curl https://api.example.com/data | jq .
L'outil jq est recommandé pour sa sortie colorisée, ses capacités d'interrogation et sa gestion robuste des erreurs.
Q: What is JSON Schema?
A: What is JSON Schema?
JSON Schema est un vocabulaire qui vous permet d'annoter et de valider des documents JSON. Il définit la structure, les types de données et les contraintes qu'un document JSON doit satisfaire. Considérez-le comme un contrat ou une spécification pour vos données JSON.
Capacités clés de JSON Schema :
- Validation des types -- SpĂ©cifiez si une valeur doit ĂȘtre une chaĂźne, un nombre, un boolĂ©en, un tableau, un objet ou null
- Champs obligatoires -- Marquez certaines propriétés comme obligatoires
- Contraintes de valeurs -- Définissez des valeurs minimales/maximales, des motifs de chaßne (regex) et des valeurs autorisées (énumérations)
- Validation des tableaux -- ContrÎlez la longueur des tableaux, les types d'éléments et l'unicité
- Validation imbriquée -- Définissez des schémas pour les objets et tableaux imbriqués
- Validation conditionnelle -- Appliquez différentes rÚgles en fonction des valeurs d'autres champs
Exemple de JSON Schema :
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"required": ["name", "email"],
"properties": {
"name": { "type": "string", "minLength": 1 },
"email": { "type": "string", "format": "email" },
"age": { "type": "integer", "minimum": 0, "maximum": 150 }
}
}
JSON Schema est couramment utilisĂ© pour valider les corps de requĂȘtes API, les fichiers de configuration et les contrats d'Ă©change de donnĂ©es entre services.