データ変換レシピビルダー:JSON・CSV・YAML をローカルで整える

必要な変換を積み上げ、1 つの入力に対して順番に実行し、各ステップの記録を確認できます。JSON・JSONPath・CSV・YAML・Base64・URL・正規表現・マスキング・空白除去・改行コードの 15 種類に対応し、どこにも送信しません。

ブラウザ内でローカルに実行
1Source 2ステップ 3Result ブラウザ内ローカルエンジン
貼り付けたデータと選択したファイルはこのブラウザ内に留まります。レシピを保存しても、このブラウザ内にステップ設定のみが保存され、ソースペイロードが保存されることはありません。
01ソースペイロード

ローカルファイルを使用するか、データを貼り付けてください。大きなファイルはブラウザが直接読み取り、KivTools には送信されません。

02レシピのステップ
保存済みレシピ設定のみ · このブラウザ
03Result
実行トレース各ステップは順番に実行されます
  1. ステップを追加または変更し、レシピを実行すると変換の流れを確認できます。

レシピの作り方と実行方法

15 種類の変換(JSON の解析、JSONPath 抽出、CSV・YAML への変換、Base64、URL エンコード、正規表現置換、秘密情報のマスキング、空白の除去など)をいくつでも連結し、1 つのデータに順番に適用できます。各ステップの出力が次の入力になり、実行トレースにはステップごとの前後のサイズが並びます。

レシピはデータではなく設定です。保存・書き出し・読み込みで残るのはステップの一覧だけで、貼り付けたデータは保存されません。エディターは 2 ステップの初期レシピ(JSON の解析 → 秘密の値のマスキング)で開き、処理はすべてブラウザ内で完結します。テキストが送信されることはありません。

  1. データを貼り付けるか、ローカルファイルを選びます(.json、.yaml、.yml、.csv、.tsv、.txt、.log、.ndjson)。「サンプルを読み込む」では、apiToken・dbPassword・authorization ヘッダーを含む在庫 API の応答が入ります。
  2. 変換を選んで「ステップを追加」を押します。選んだステップの下に、JSONPath、CSV の区切り文字、正規表現のパターン・置換後・フラグ、機密キー名の一覧などの設定欄が表示されます。「ステップを上へ」「ステップを下へ」で順序を入れ替えられます。
  3. 「レシピを実行」を押します。各ステップは前の出力を受け取り、最初に失敗したステップで実行が止まり、番号と理由が表示されます。出力にはその 1 つ前のステップの結果が残ります。
  4. 実行トレースで各ステップのバイト数を確認し、「結果をコピー」または「結果をダウンロード」(ブラウザが書き出す kivtools-data-recipe-output.txt)で取り出します。
  5. 名前を入力して「レシピを保存」を押すとこのブラウザにステップ一覧が残り、「レシピを書き出す」で kivtools-data-recipe.json を得られます。「読み込む」と「レシピを読み込む」はステップを復元し、元データの欄には触れません。

各変換の動作

JSON のステップ:整形・並べ替え・JSONPath

「JSON を解析して整形表示」はブラウザのパーサーで検証し、2 スペースで整形し直します。壊れた入力はそのパーサーのメッセージとともに実行を止めます。「JSON オブジェクトのキーを並べ替え」はすべての階層でキーをアルファベット順にし、配列の順序はそのまま残します。

「JSONPath で抽出」はフィールド、インデックス、[*]、$..token のような再帰フィールドに対応します。結果は常に JSON 配列で、一致が 1 件なら 1 要素の配列、一致なしなら [] を返します。それ以外の JSONPath 構文は推測せずメッセージを出して拒否します。

CSV・YAML・行のステップ

「JSON 配列を CSV に変換」は最上位がオブジェクトの配列である必要があります。見出しはキーの初出順の和集合で、値がなければ空セル、値にカンマ・引用符・改行が含まれる場合は引用符で囲みます。ネストしたオブジェクトや配列はセル内に JSON テキストとして書き出します。

「CSV を JSON に変換」は最初の空でない行からカンマ・セミコロン・タブを判定し、値はすべて文字列のまま保持し(型推測なし)、空行を飛ばし、重複・無名の見出しは改名します(a が 2 つなら a と a_2、名前のない列は column_3)。

「YAML を JSON に変換」は小さなローカルパーサーです。単純なマッピング、リスト、インラインの [1, 2]、引用符付き文字列、コメントは扱えますが、| や > で書いたブロックスカラーは文字列 [multiline scalar] として返り、アンカーとエイリアスは非対応、インデントのタブは拒否、--- と ... は無視されるため 2 文書のファイルは 1 つのオブジェクトに統合されます。「JSON を YAML に変換」は文字列値と単純名でないキーをすべて引用符で囲みます。「外側の空白行を削除」はテキスト両端の空白だけを消し、「改行コードを統一」は CRLF と CR を LF にします。

エンコード・URL・マスキングのステップ

Base64 エンコードは UTF-8 で行うため、アクセント記号や絵文字も往復できます。Base64 デコードは改行を無視し、URL 用の - と _ も受け付け、不正な場合はゴミを返さずにエラーを表示します。URL エンコードは値全体をパーセント符号化し、URL デコードは + を空白に変え、壊れたエスケープはそのまま通さずに知らせます。

「正規表現で検索と置換」は入力したフラグ付きの JavaScript 正規表現を使います。g ならすべて、フラグなしなら最初の 1 件だけを置換し、$1 の後方参照も機能します。不正なパターンはエンジンのメッセージとともに停止します。「秘密の値をマスキング」はオブジェクトのキーを大文字小文字を区別せず部分一致で照合し(既定は password、secret、token、apiKey、authorization、credential)、値を [REDACTED] に置き換えます。JSON でない入力では key=value と key: value の組をテキスト内でマスキングします。一致しなかった値はそのまま残り、警告は出ません。

制限と保存

数値はブラウザの JSON パーサーを通るため、有効数字が 15〜16 桁を超える整数は丸められます(12345678901234567890 は 12345678901234567000 になります)。CSV から JSON では "5" が数値になることはなく、JSON から CSV はオブジェクトの配列以外を受け付けません。

保存したレシピはこのブラウザの kivtools.datarecipe.recipes.v1 キーに置かれ、含まれるのはステップだけです。同じ名前で保存し直すと前の項目が置き換わり、ページを再読み込みするとエディターは 2 ステップの初期レシピに戻ります。

最近使ったツール: