Créateur de recettes de transformation de données : nettoyer JSON, CSV et YAML en local

Enchaînez les transformations utiles, exécutez-les dans l’ordre sur un même contenu et lisez la trace étape par étape. Quinze étapes couvrent JSON, JSONPath, CSV, YAML, Base64, URL, regex, masquage, trim et fins de ligne, et rien n’est envoyé.

Fonctionne localement dans votre navigateur
1Source 2Étapes 3Résultat Moteur local du navigateur
Les données collées et les fichiers sélectionnés restent dans ce navigateur. L'enregistrement d'une recette stocke uniquement la configuration de ses étapes dans ce navigateur ; il n'enregistre jamais votre payload source.
01Charge utile source

Utilisez un fichier local ou collez des données. Les fichiers volumineux sont lus directement par le navigateur et ne sont pas envoyés à KivTools.

02Étapes de la recette
Recettes enregistréesconfiguration uniquement · ce navigateur
03Résultat
Trace d'exécutionchaque étape se déroule dans l'ordre
  1. Ajoutez ou modifiez des étapes, puis exécutez la recette pour voir le chemin de transformation.

Comment construire et exécuter une recette

Enchaînez autant que vous voulez parmi les quinze transformations — analyser du JSON, extraire avec JSONPath, convertir en CSV ou YAML, Base64, encodage d’URL, remplacement par expression régulière, masquage de secrets, suppression des blancs — et faites-les passer sur une même charge. Les étapes s’exécutent dans l’ordre, la sortie de l’une devient l’entrée de la suivante, et la trace indique la taille avant et après chaque étape.

Une recette est une configuration, pas une donnée : l’enregistrement, l’export et l’import ne conservent que la liste des étapes, jamais la charge collée. L’éditeur s’ouvre sur une recette de départ à deux étapes (analyser le JSON, puis masquer les valeurs secrètes) et tout s’exécute dans le navigateur — aucune requête ne transporte votre texte.

  1. Collez la charge ou choisissez un fichier local (.json, .yaml, .yml, .csv, .tsv, .txt, .log, .ndjson). Charger l’exemple remplit une réponse d’API d’inventaire dont apiToken, dbPassword et l’en-tête authorization sont prêts à être masqués.
  2. Choisissez une transformation et cliquez sur Ajouter l’étape. Les options de l’étape apparaissent en dessous : JSONPath, délimiteur CSV, motif / remplacement / options de l’expression régulière, ou la liste des noms de clés sensibles. Monter l’étape et Descendre l’étape réordonnent la chaîne.
  3. Cliquez sur Exécuter la recette. Chaque étape reçoit la sortie précédente ; la première étape en échec arrête l’exécution, indique son numéro et le motif, et la sortie conserve le résultat de l’étape d’avant.
  4. Lisez la trace d’exécution pour connaître la taille de chaque étape, puis récupérez le résultat avec Copier le résultat ou Télécharger le résultat (kivtools-data-recipe-output.txt, écrit par le navigateur).
  5. Saisissez un nom et cliquez sur Enregistrer la recette pour garder les étapes dans ce navigateur, ou sur Exporter la recette pour obtenir kivtools-data-recipe.json. Charger et Importer restaurent les étapes et laissent le champ source intact.

Ce que fait chaque transformation

Étapes JSON : mise en forme, tri, JSONPath

Analyser et formater JSON valide le document avec l’analyseur du navigateur et le réindente avec deux espaces ; une entrée incorrecte arrête la recette avec ce message. Trier les clés d’objet JSON trie alphabétiquement à chaque niveau et laisse l’ordre des tableaux strictement inchangé.

Extraire avec JSONPath lit les champs, les index, [*] et les champs récursifs comme $..token. Le résultat est toujours un tableau JSON : une correspondance renvoie un tableau d’un élément, aucune correspondance renvoie []. Toute autre syntaxe JSONPath est refusée avec un message plutôt que devinée.

Étapes CSV, YAML et lignes

Convertir un tableau JSON en CSV exige un tableau d’objets au premier niveau. L’en-tête est l’union des clés dans leur ordre d’apparition, une valeur absente devient une cellule vide, et une valeur contenant une virgule, un guillemet ou un saut de ligne est mise entre guillemets. Les objets et tableaux imbriqués sont écrits en JSON dans la cellule.

Convertir CSV en JSON détecte la virgule, le point-virgule ou la tabulation sur la première ligne non vide, conserve chaque valeur en texte (aucune déduction de type), ignore les lignes vides et renomme les en-têtes en double ou absents : deux colonnes a deviennent a et a_2, une colonne sans nom devient column_3.

Convertir YAML en JSON repose sur un petit analyseur local : les mappings simples, les listes, les [1, 2] en ligne, les chaînes entre guillemets et les commentaires fonctionnent ; les scalaires de bloc écrits avec | ou > reviennent sous forme de texte littéral [multiline scalar], les ancres et alias ne sont pas pris en charge, une tabulation dans l’indentation est refusée, et les marqueurs --- et ... sont ignorés, si bien qu’un fichier à deux documents fusionne en un seul objet. Convertir JSON en YAML met entre guillemets toute valeur de texte et toute clé qui n’est pas un nom simple. Supprimer les lignes vides extérieures n’enlève des blancs qu’aux deux extrémités du texte, et Normaliser les fins de ligne transforme CRLF et CR en LF.

Étapes d’encodage, d’URL et de masquage

Base64 encode travaille en UTF-8, donc les accents et les emoji survivent à l’aller-retour ; Base64 decode ignore les sauts de ligne, accepte les caractères - et _ sûrs pour une URL et signale un Base64 invalide au lieu de renvoyer du charabia. Encoder en URL applique le pourcentage à toute la valeur ; décoder transforme + en espace et signale un échappement mal formé au lieu de le laisser passer.

Rechercher et remplacer par expression régulière utilise les expressions JavaScript avec les options saisies : g remplace toutes les occurrences, un champ d’options vide seulement la première, et les références $1 fonctionnent. Un motif invalide arrête la recette avec le message du moteur. Masquer les valeurs secrètes compare les clés sans tenir compte de la casse et par fragment — liste par défaut : password, secret, token, apiKey, authorization, credential — et remplace la valeur par [REDACTED] ; si l’entrée n’est pas du JSON, les paires clé=valeur et clé : valeur sont masquées dans le texte. Ce qui ne correspond pas n’est pas signalé : l’étape ne change que ce qu’elle reconnaît.

Limites et stockage

Les nombres passent par l’analyseur JSON du navigateur : un entier de plus de 15–16 chiffres significatifs est arrondi — 12345678901234567890 revient en 12345678901234567000. CSV vers JSON ne transforme jamais "5" en nombre, et JSON vers CSV refuse tout ce qui n’est pas un tableau d’objets.

Les recettes enregistrées vivent dans le stockage de ce navigateur sous la clé kivtools.datarecipe.recipes.v1 et ne contiennent que des étapes. Enregistrer deux fois le même nom remplace l’entrée précédente ; l’éditeur revient à la recette de départ à deux étapes au rechargement de la page.

Outils récents :