Convertisseur JSON, YAML et CSV

S’exécute dans votre navigateur ; rien n’est envoyé

Convertissez entre JSON, YAML et CSV dans tous les sens, avec une vue en tableau pour les données CSV.

Input · JSON

Output · YAML

Converted YAML appears here as you type.

Ready
Ln 1, Col 1

À quoi servent JSON, YAML et CSV

JSON, YAML et CSV décrivent tous des données sous forme de texte, mais pour des usages différents. Le JSON est le format des API web : strict et facile à analyser pour les programmes. Le YAML contient les mêmes structures que le JSON (objets, listes, chaînes, nombres, booléens) mais utilise l’indentation au lieu des accolades, ce qui le rend plus facile à modifier à la main ; les spécifications OpenAPI, les pipelines de CI et les fichiers Docker Compose et Kubernetes sont généralement en YAML. Le CSV est un tableau : une ligne d’en-tête avec les noms des colonnes, puis une ligne par enregistrement.

Le convertisseur lit l’entrée dans un modèle de données unique et l’écrit dans le format cible. Les nombres gardent les chiffres avec lesquels ils ont été écrits : un identifiant de 19 chiffres ou 1.50 passe sans changement. Tout ce que la conversion a dû trancher (une valeur que le YAML lit comme un nombre, un objet imbriqué aplati en colonne, une clé qui apparaît deux fois) est listé dans les notes au-dessus de la sortie.

Le YAML est lu avec le schéma core de YAML 1.2, la version actuelle de la norme. true, false et null sont des valeurs ; yes, no, on et off restent des chaînes, contrairement aux anciennes bibliothèques YAML 1.1 comme PyYAML. En écrivant du YAML, le convertisseur met entre guillemets toute chaîne que l’une ou l’autre version lirait autrement, si bien que "yes", "007" et "2024-01-01" se relisent partout comme les mêmes chaînes.

Comment utiliser cet outil

  1. 1Choisissez les formats dans From et To dans la barre d’outils. Collez vos données dans le panneau Input, déposez-y un fichier ou appuyez sur Ctrl+O pour en ouvrir un (jusqu’à 5 Mo) ; ouvrir un fichier .yaml, .csv ou .json règle From pour vous.
  2. 2Le résultat s’affiche dans le panneau Output et se met à jour pendant la saisie. Quand du CSV est en jeu, l’onglet Table montre les lignes et les colonnes.
  3. 3Ajustez les options qui apparaissent dans la barre : le séparateur CSV (ou Detect), si la première ligne est un en-tête, si les nombres et true/false deviennent des valeurs JSON, l’imbrication des noms de colonnes avec des points, et la façon d’écrire les tableaux dans le CSV.
  4. 4Si l’entrée est invalide, le panneau de sortie et la barre d’état donnent la ligne et la colonne. Appuyez sur F8 pour y placer le curseur.
  5. 5Swap (Shift+Alt+S) place la sortie dans l’entrée et inverse les formats, pour vérifier l’aller-retour. Ctrl+Z l’annule.
  6. 6Copiez la sortie ou téléchargez-la avec Ctrl+S.

Dépannage

Les tabulations ne peuvent pas servir à indenter en YAML
Le YAML n’accepte que des espaces pour l’indentation. Remplacez les tabulations en début de ligne par des espaces ; la plupart des éditeurs savent les convertir.
Une valeur ne peut pas se poursuivre avec une ligne key:
Une ligne est indentée sous une clé qui a déjà une valeur sur sa propre ligne. Supprimez la valeur après les deux-points, pour que les lignes indentées deviennent ses enfants, ou corrigez l’indentation.
Clé en double
Le YAML exige que chaque clé d’un mapping soit unique. Renommez ou supprimez l’une d’elles ; l’erreur désigne la seconde.
La ligne 4 a 5 champs ; l’en-tête en a 4
Une valeur de cette ligne contient le séparateur sans guillemets autour, ou il manque une colonne à l’en-tête. Mettez la valeur entre guillemets ("Pune, MH") ou vérifiez le séparateur choisi.
Les codes postaux ou les identifiants perdent leurs zéros initiaux
Depuis le CSV, des valeurs comme 007 restent du texte. Depuis le YAML, un 007 sans guillemets est le nombre 7 selon la norme YAML, et les notes le signalent ; mettez-le entre guillemets dans le YAML pour le garder en texte.
Plusieurs documents YAML ne sont pas pris en charge
L’entrée contient plus d’un document séparé par ---, comme souvent dans les fichiers Kubernetes. Convertissez les documents un par un.

Questions fréquentes

Quelles fonctionnalités YAML sont prises en charge ?

Les mappings et listes en bloc, les collections en ligne comme [a, b] et {a: 1}, les chaînes simples, entre guillemets simples ou doubles sur plusieurs lignes, les chaînes en bloc littérales | et repliées > avec indicateurs de chomping, les commentaires, les ancres et alias, la clé de fusion << et l’étiquette !!str. Les clés complexes ?, les autres étiquettes et plusieurs documents dans une même entrée s’arrêtent sur une erreur qui nomme la fonctionnalité, au lieu de produire des données fausses.

Comment du JSON imbriqué est-il écrit en CSV ?

Chaque ligne correspond à un objet du tableau. Les objets imbriqués deviennent des colonnes aux noms pointés, comme address.city. Par défaut, les tableaux sont écrits en texte JSON dans une cellule, ou répartis sur des colonnes numérotées (tags.0, tags.1) si vous choisissez In columns. Les colonnes sont l’union des clés de toutes les lignes, dans l’ordre de leur première apparition. null devient une cellule vide.

Quels types produit la conversion de CSV vers JSON ?

Avec Numbers activé, une valeur devient un nombre JSON seulement si elle est déjà écrite exactement comme tel (42, -1.5, 1e3), et true et false deviennent des booléens. 007, +5 et 1,000 restent du texte, tout comme les cellules vides. Désactivez Numbers pour garder toutes les valeurs en chaînes.

Mes données sont-elles envoyées à un serveur ?

Non. L’analyse et la conversion se font dans votre navigateur. Pour survivre à un rechargement, ce que vous collez est conservé dans le session storage de cet onglet jusqu’à ce que vous l’effaciez ou fermiez l’onglet. Copy link place l’entrée dans le lien après le #, une partie que les navigateurs n’envoient jamais à un serveur, mais toute personne à qui vous donnez le lien peut la lire. Vos réglages, comme les formats et le séparateur, sont enregistrés dans ce navigateur.