UltKit

Convertisseur YAML en JSON

Transformez vos configurations YAML, spécifications OpenAPI et fichiers de CI en JSON lisible par n’importe quel parseur, API ou validateur de schéma. Importez des fichiers .yaml ou .yml et téléchargez un JSON indenté.

Convertisseur de données

ou déposez Fichiers CSV, TSV, TXT … ici ·

95 Mo max. par fichier· Jusqu'à 20 fichiers· Supprimés après 30 minutes

Sortie

Les fichiers sont traités sur nos serveurs et supprimés après 30 minutes.

Comment utiliser cet outil

  1. 1

    Importez vos fichiers YAML

    Ajoutez des fichiers .yaml ou .yml, jusqu'à 20 à la fois et 95 Mo chacun. Les noms d'origine sont conservés : les fichiers JSON reprennent les mêmes noms avec une nouvelle extension.

  2. 2

    Choisissez indenté ou compact

    Mise en forme lisible est activée : elle indente le JSON pour faciliter la lecture et la relecture de code. Désactivez-la dans Réglages avancés pour obtenir un fichier sur une seule ligne, à coller dans le corps d'une requête.

  3. 3

    Convertissez et utilisez le JSON

    Cliquez sur Convertir en JSON, téléchargez le fichier, puis transmettez-le à l'API, au validateur ou au script qui en avait besoin.

Pourquoi les développeurs convertissent le YAML en JSON

YAML est écrit pour les humains : indentation au lieu d'accolades, commentaires, pas de guillemets autour de la plupart des chaînes. C'est pourquoi c'est le format des manifestes Kubernetes, des workflows GitHub Actions, des fichiers Docker Compose et des spécifications OpenAPI que les équipes modifient à la main. JSON est écrit pour les programmes. Chaque langage dispose d'un parseur JSON dans sa bibliothèque standard, les navigateurs l'analysent nativement et la plupart des API HTTP n'acceptent rien d'autre.

La conversion se fait donc à la frontière. Un ingénieur plateforme fait passer un manifeste dans jq, qui ne lit que du JSON. Un développeur backend envoie une spécification OpenAPI à un générateur de code qui exige du JSON. Un testeur charge dans une suite de tests JavaScript des données de test écrites en YAML. Dans chaque cas, le YAML reste la source de référence et le JSON est un artefact de build. Pour tout un répertoire de flux ou d'exports plutôt que de configurations, XML en JSON traite de la même façon l'ancien format de balisage.

Comment YAML et JSON ont évolué ensemble

Première proposition de YAML par Clark Evans
2001
YAML 1.2 fait de JSON un sous-ensemble de YAML
2009
RFC 8259, la norme JSON actuelle
2017
Publication de la révision YAML 1.2.2
2021

Ce que deviennent les fonctionnalités propres au YAML dans le JSON

Une ancre (&defaults) et ses alias (*defaults) permettent à YAML de réutiliser un bloc. JSON n'a pas de références : chaque alias est donc remplacé par une copie complète du bloc ancré.

  • Le JSON peut être nettement plus long que le YAML
  • Les clés de fusion (<<: *defaults) sont développées de la même façon
Une petite configuration YAML en JSON à mise en forme lisible
{
  "service": "billing",
  "replicas": 3,
  "ports": [8080, 9090],
  "env": {
    "LOG_LEVEL": "info",
    "REGION": "NO"
  }
}

Caractéristiques des formats YAML et JSON

YAML

YAML

Le YAML (« YAML Ain't Markup Language ») est un format de données lisible par l'humain, publié pour la première fois en 2001. Il utilise l'indentation à la place des accolades, accepte les commentaires et constitue un sur-ensemble du JSON. Il est très utilisé pour la configuration dans Docker Compose, Kubernetes, GitHub Actions et de nombreuses applications. Sa dépendance aux espaces le rend facile à casser avec une seule espace mal placée, et certaines valeurs, comme « no » ou des dates, peuvent être interprétées de façon inattendue.

Compression
–
Transparence
–
Animation
–
Année de création
2001 · Clark Evans, Ingy döt Net, Oren Ben-Kiki
Convertisseur YAML

JSON

JavaScript Object Notation

JSON est un format texte léger pour les données structurées, popularisé par Douglas Crockford au début des années 2000 et normalisé par la RFC 8259 et ECMA-404. Il représente des objets, tableaux, chaînes, nombres, booléens et null avec une syntaxe simple et lisible. C'est le format par défaut des API web, des fichiers de configuration et des échanges de données entre applications dans presque tous les langages de programmation. Il n'intègre ni commentaires, ni dates, ni schémas, et les gros fichiers imbriqués sont difficiles à lire sans visionneuse.

Compression
–
Transparence
–
Animation
–
Année de création
2001 · Douglas Crockford
Convertisseur JSON

On convertit du YAML en JSON quand une configuration ou une spécification écrite pour des humains doit alimenter une machine : une requête d'API, un validateur de schéma ou un outil sans parseur YAML.

FAQ du convertisseur YAML en JSON

Pourquoi convertir du YAML en JSON s’ils contiennent les mêmes données ?

Parce que de nombreux outils ne savent lire que l'un des deux. Les lecteurs JSON sont fournis avec tous les langages de programmation et tous les navigateurs, alors que YAML nécessite une bibliothèque supplémentaire. Les corps de requête des API REST, les validateurs JSON Schema, jq, ainsi que des fichiers comme package.json ou le manifest.json d'une extension de navigateur attendent tous du JSON.

Que deviennent mes commentaires YAML ?

Ils sont supprimés. La RFC 8259 ne prévoit aucune syntaxe de commentaire en JSON : les lignes commençant par # n'ont donc nulle part où aller. Conservez le fichier YAML comme source documentée et considérez le JSON comme une copie générée, que vous pouvez recréer à tout moment.

Pourquoi NO ou off sont-ils devenus false ?

Les parseurs conformes à YAML 1.1 lisent yes, no, on et off comme des booléens : un code pays comme NO pour la Norvège peut donc devenir false. YAML 1.2 limite les booléens à true et false, mais tous les outils ne le suivent pas. Mettez ces valeurs entre guillemets dans le YAML, par exemple "NO", et elles resteront des chaînes dans le JSON.

Puis-je convertir un modèle CloudFormation écrit en YAML ?

AWS CloudFormation accepte les deux formats, mais les balises courtes comme !Ref et !GetAtt n'existent qu'en YAML. Les modèles JSON les écrivent sous forme de fonctions complètes, {"Ref": "MyBucket"} ou {"Fn::GetAtt": [...]}. Réécrivez les balises courtes en forme longue avant la conversion pour que le modèle JSON reste valide.

Comment faire la conversion inverse ?

Utilisez JSON en YAML. C'est le sens habituel lorsqu'une réponse d'API ou un fichier généré doit devenir un fichier de configuration lisible dans un dépôt.