Aller au contenu

Convertir des objets JSON5 en JSON — Numio

Transforme un littéral d’objet JavaScript en JSON strict indenté de 2 espaces. Les clés sans guillemets, les guillemets simples, les commentaires, les virgules finales, les nombres hexadécimaux et les décimaux commençant par un point sont acceptés et normalisés.

Copier un objet de configuration ou de fixture d’un fichier .js vers un fichier JSON, le corps d’une requête d’API ou une collection Postman.

Accepte JSON et JSON5, y compris les commentaires, les chaînes entre apostrophes et les virgules finales. Les fonctions et expressions JavaScript ne sont pas exécutées.

JS Object

JSON

Quand l’utiliser

  • Copier un objet de configuration ou de fixture d’un fichier .js vers un fichier JSON, le corps d’une requête d’API ou une collection Postman.
  • Nettoyer un objet collé depuis les DevTools du navigateur ou une documentation pour qu’il passe un parser JSON strict.

Mode d’emploi

  1. Collez le littéral d’objet (les données seulement, sans déclaration de variable ni point-virgule final) dans l’éditeur de gauche, ou utilisez le bouton de chargement de fichier pour ouvrir un fichier UTF-8.
  2. Le JSON s’affiche à droite pendant la saisie ; si une erreur comme "invalid character" apparaît, vérifiez la ligne et la colonne indiquées.
  3. Vérifiez les valeurs converties (l’hexadécimal devient décimal, les guillemets deviennent des guillemets doubles) et copiez le résultat.

Littéral d’objet JavaScript

{
  // Mongoose-style field definition
  title: {
    type: 'String',
    required: true,
  },
  year: { type: 'Number', max: 0x7E6 },
  tags: ['draft', 'review',],
  ratio: .75,
  'content-type': "text/plain",
}

JSON

{
  "title": {
    "type": "String",
    "required": true
  },
  "year": {
    "type": "Number",
    "max": 2022
  },
  "tags": [
    "draft",
    "review"
  ],
  "ratio": 0.75,
  "content-type": "text/plain"
}

Détails et limites

L’entrée est analysée par le parser JSON5 dans votre navigateur ; le code n’est jamais exécuté. Les expressions, fonctions, new Date(), template literals, undefined et références à des variables sont rejetés comme caractères invalides.

NaN et Infinity sont rejetés avec une erreur, car le JSON ne peut pas les représenter.

Les commentaires et la mise en forme d’origine des clés ne sont pas conservés ; la sortie utilise toujours des guillemets doubles et une indentation de 2 espaces.

Les entiers au-delà de 2^53 perdent en précision (12345678901234567890 devient 12345678901234567000). Mettez les grands ID entre guillemets, sous forme de chaînes.

FAQ

Puis-je coller const config = { ... }; ?

Non. Seule la valeur est acceptée. Supprimez la déclaration et le point-virgule final, sinon le parser signale un caractère invalide à cet endroit.

Que deviennent les clés en double ?

La dernière occurrence l’emporte. {a: 1, a: 2} devient {"a": 2} sans avertissement : vérifiez donc les objets fusionnés à la main.

Accepte-t-il des tableaux ou des valeurs simples à la racine ?

Oui. Toute valeur JSON5 fonctionne : par exemple, [1, 2,] devient un tableau JSON de deux éléments et 'hi' devient "hi".

Spécifications et références