Langue : Français

tools / json

json/

Formatage, minification, validation, échappement et tri des clés JSON, avec validation en direct pendant la saisie.

Entrée

Résultat

Questions fréquentes

La validation indique « Unexpected token » ou « JSON non valide ». Que faire ?

Le plus souvent, le texte est un littéral JavaScript ou Python et non du JSON standard. Causes typiques : apostrophes simples, clés sans guillemets doubles, virgule en trop après le dernier élément, commentaires // ou /* */, NaN ou undefined (et True ou None en Python), guillemets typographiques copiés depuis une messagerie. La position indiquée est celle où l'analyseur s'est bloqué ; la vraie cause se trouve peut-être juste avant.

Comment lire la ligne et la colonne dans le message d'erreur ? Pourquoi la suite est-elle en anglais ?

Les lignes et les colonnes commencent à 1. La position vient de l'erreur du navigateur quand il en fournit une ; sinon (Safari, par exemple), l'outil analyse lui-même le texte pour trouver le premier caractère fautif. Le texte après « · » est le message d'origine de JSON.parse dans le navigateur : sa formulation varie d'un navigateur à l'autre et n'est pas traduite ici.

Comment transformer les séquences \u4e2d\u6587 d'un JSON en texte lisible ?

Cliquez simplement sur « Formater » ou « Minifier ». L'outil analyse le JSON puis le réécrit, et les séquences \uXXXX dans les chaînes redeviennent les vrais caractères. Si l'ensemble est une chaîne échappée (entourée de guillemets et pleine de \"), utilisez d'abord « Annuler l'échappement ». Dans l'autre sens, transformer du texte non ASCII en forme \u n'est pas possible ici : « Échapper » ne traite que les guillemets, les antislashs, les sauts de ligne et les caractères similaires.

Quelle différence entre « Échapper » et « Annuler l'échappement » ? Comment restaurer une chaîne pleine de \" renvoyée par une API ?

« Échapper » transforme le texte en quelque chose qui peut se placer dans une chaîne (un antislash devant les guillemets, les sauts de ligne deviennent \n), sans les guillemets extérieurs ; « Annuler l'échappement » fait l'inverse. Pour un contenu d'API plein de \", choisissez « Annuler l'échappement » : cela fonctionne avec ou sans guillemets extérieurs. Cliquez ensuite sur « ⇄ Utiliser le résultat comme entrée » : l'outil passe automatiquement sur « Formater ».

Les nombres longs (comme les identifiants snowflake) changent à la fin après le formatage. Que faire ?

Les entiers supérieurs à 2^53 (9007199254740991) ne peuvent pas être représentés exactement en JavaScript : JSON.parse a déjà perdu en précision en les lisant, et les derniers chiffres deviennent souvent des zéros. Au formatage ou à la minification, la page affiche un avertissement listant jusqu'à 5 positions. Pour conserver ces valeurs intactes, faites en sorte que la source de données renvoie ces identifiants sous forme de chaînes (entre guillemets doubles).

Après le formatage, 1.0 est devenu 1 et une clé en double a disparu. Pourquoi ?

Le formatage et la minification analysent le JSON puis le réécrivent : les nombres sont donc réécrits à la manière de JavaScript. 1.0 devient 1, 1E2 devient 100, 0.10 devient 0.1 et -0 devient 0, sans changer la valeur. Si un objet contient deux fois la même clé, seule la dernière est conservée, sans avertissement.

Comment « Trier les clés » ordonne-t-il les clés, et les tableaux changent-ils ?

Les clés de tous les niveaux sont triées par code de caractère, les majuscules avant les minuscules, et les autres écritures par point de code plutôt que par ordre du dictionnaire. Les éléments d'un tableau gardent leur ordre. Les clés purement numériques (comme "2" et "10") font exception : JavaScript les place toujours en premier, dans l'ordre numérique, elles sont donc déplacées en tête même quand « Trier les clés » est désactivé.

Quelle taille de JSON est acceptée ? Mes données sont-elles envoyées quelque part ?

Il n'y a pas de limite de taille fixe. Au-delà d'un million de caractères, le traitement est retardé d'environ 0,6 seconde après la saisie, et un texte très volumineux est surtout limité par la mémoire du navigateur. Tout se passe dans votre navigateur ; la page n'envoie aucune requête contenant votre contenu et ne conserve pas ce que vous saisissez.