Réparer le JSON

Du JSON relâché vers du JSON strict : commentaires, apostrophes, clés nues et virgules finales.

Un JSON qui passe presque

Éditeurs et journaux laissent souvent des commentaires, des apostrophes, des clés sans guillemets ou une virgule avant l’accolade fermante. Un parseur strict refuse ça. Cette page réécrit ces habitudes et indente la valeur. Les commentaires sont retirés, pas conservés. L’éditeur en arbre est le formateur JSON. Comparer deux valeurs, c’est comparer le JSON.

Comment s’en servir

  1. Collez le texte relâché. Mettre à jour en tapant est coché : le résultat suit la saisie. Convertir fait la même étape une fois.
  2. Tout effacer vide la saisie et le résultat.
  3. Copier le résultat copie le JSON strict.
  4. Afficher un exemple charge {name: 'Ada', n: 1, tags: ['a',],} et une ligne // note. Le résultat est un objet name Ada, n 1, tags avec a. Le commentaire a disparu.

Ce qui est réécrit

// et /* */ hors des chaînes sont retirés. Une chaîne entre apostrophes devient une chaîne JSON. Les séquences \n, \t, \r, \', \" et \\ deviennent les caractères qu’elles nomment. Un mot nu est mis entre guillemets, sauf true, false et null, qui restent des mots-clés quelle que soit la casse. undefined, NaN et Infinity deviennent null. Une virgule qui n’a plus que des espaces ou un commentaire avant } ou ] est abandonnée. Le résultat est indenté de deux espaces. Le texte déjà entre guillemets doubles est recopié tel quel. Si après ça ce n’est toujours pas du JSON, ou si la zone est vide, la page signale un JSON invalide.

À quoi ça sert

  • Une config copiée depuis JavaScript.
  • Un exemple d’API avec une virgule finale.
  • Une ligne de journal avec un // à côté de l’objet.

Questions

Le commentaire a disparu.

La réparation produit du JSON strict. Les commentaires n’en font pas partie, ils sont retirés.

Un nombre entre guillemets est resté une chaîne.

Ce qui est déjà entre guillemets doubles n’est pas touché. Seuls les mots nus et les chaînes entre apostrophes sont réécrits.