CSV、JSON、YAML、XML間のデータ変換
データは1つのフォーマットに留まりません。レポートはスプレッドシートで届き、APIはJSONを要求し、デプロイパイプラインはYAMLを期待し、どこかのレガシーサービスはまだXMLで動いています。データを扱う日々の摩擦のほとんどはデータそのものではなく、手元の形式から別の何かが要求する形式へ変換することです。データコンバーターの仕事はまさにそこにあります。ある表記の構造化テキストを別の表記に変換しながら意味を失わないようにします。
Speedorのコンバーターはブラウザ内で完全に動作します。貼り付けて、クリックして、結果をコピーするだけです。アップロードなし、ログなし、デバイスからデータが出ることもありません。顧客のエクスポートをランダムなWebサイトにドロップするのをためらったことがある方にとって、このローカル処理設計こそが重要な点です。
各フォーマットが実際に得意なこと
変換を始める前に、なぜこれらのフォーマットが存在するかを知っておくと役立ちます。それぞれが異なる仕事のために作られたからです。
CSVはスプレッドシートが好むフラットなカンマ区切りグリッドです。本質的にテーブル形式で、行と列のみ、ネスト構造はありません。Excel、Googleスプレッドシート、Numbersで開けばそのまま機能します。欠点はCSVには型の概念がないことです。007という値は文字列・数値・郵便番号のいずれかになりますが、CSVはどれか教えてくれません。
JSONはモダンWebの共通言語です。呼び出すほぼすべてのAPIがこれを使います。JSONはネスト・配列・いくつかの実際の型(文字列、数値、真偽値、null)を扱えるためフラットなテーブルよりずっと表現力があります。コンパクトで機械に優しくどこでもサポートされています。
YAMLはJSONのより読みやすいいとこです。括弧の代わりにインデントを使い、コメントをサポートし、設定ファイル・Docker Compose・Kubernetesマニフェスト・CIパイプラインで好まれるフォーマットです。人間が手動で編集する必要がある場合、YAMLは通常より目に優しいです。
XMLは元老です。冗長でタグが多く、エンタープライズシステム・SOAPサービス・金融メッセージング・RSSなどのドキュメント標準に深く組み込まれています。新規プロジェクトで見かけることは減りましたが、必要なときは本当に必要です。

変換が実際に起きる場面
実際の場面は具体的です。マーケティングが4,000件の連絡先スプレッドシートを渡してきて、サインアップAPIはJSONの配列しか受け付けない場合。シートをCSVにエクスポートしてCSV to JSONで処理すれば、POSTするペイロードの完成です。グルースクリプトも、pandasも、エンジニアへの依頼待ちも不要です。
または同じAPIからJSONのチャンクを引き出し、サービスが起動時に読み込む設定ファイルに入れたい場合。JSON to YAMLで変換すればコメントを追加してリポジトリにすっきり収まるクリーンなものが得られます。ツールがJSONしか受け付けないがコンフィグがYAMLで書かれている場合は逆方向も機能します。
そして誰も喜ばない統合があります。XMLしか取り込めないパートナーシステムへの接続。アプリの思考スタイルに合わせてJSONでペイロードを組み立て、境界でXMLに変換します。形は同じで、構文だけが変わります。
知っておくべき落とし穴
フォーマット変換は常に損失なしとは限りません。それを無視するとバグにつながります。念頭に置くべき点:
CSVは型を忘れます。すべてのセルがテキストなので、数値・真偽値・日付はすべて文字列として出力されます。コンバーターが推測してくれない限り、trueが文字列「true」ではなく真偽値である必要がある場合は、出力を確認してから使用してください。
YAMLは空白を大切にします。YAMLではインデントは装飾ではなく構造です。1つの余分なスペースで値が属するキーが変わり、タブは完全に禁止されています。JSON to YAMLの変換後は軽く目視確認するか、結果をJSONフォーマッターに通して構造が保たれているか確認する価値があります。
XMLとJSONはきれいにマッピングできません。JSONには配列があり、XMLには繰り返し要素があります。JSONには属性がなく、XMLにはいたるところに属性があります。ほとんどのコンバーターは合理的な規則を選択しますが、XMLが属性を多用している場合、生成されるJSONは手書きのJSONとは少し異なる見た目になります。これは期待される挙動であり欠陥ではありません。
ネストの深さが重要です。CSVはフラットなので、深くネストされたJSONは常にカラムに展開できるとは限りません(address.cityのようなキーの平坦化が必要になります)。逆方向では、フラットなCSVはフラットな配列になりますが、ツリーにはなりません。

ローカル処理がここで重要な理由
変換したいデータの多くはあなたが共有すべきものではありません。ユーザーレコード、内部設定、レスポンスに埋もれたAPIキー、財務データの行。多くのオンラインコンバーターは貼り付けた内容を処理のためにサーバーに静かに送信します。Speedorはそうしません。変換ロジックはブラウザのタブで実行され、データはネットワークを越えることがなく、タブを閉じればそれが唯一のクリーンアップです。ページが読み込まれた後はオフラインでも動作し、アップロードの往復がないため速度も向上します。無料、会員登録不要、使用制限なし。
よくある質問
変換するとデータはどこかにアップロードされますか?
されません。すべての変換はJavaScriptを使ってブラウザ内でローカルに動作します。データはデバイスを離れることがなく、サーバーに送信されることもないため、オフライン時でもこれらのツールは機能します。
コードを書かずにCSVをJSONに変換できますか?
できます。CSVをコンバーターに貼り付け、変換をクリックして、生成されたJSON配列をコピーするだけです。最初の行が列ヘッダーとして扱われ、各オブジェクトのキーになります。
変換後のJSONで数値が文字列として表示されるのはなぜですか?
CSVにはデータ型の概念がないため、すべての値はテキストとして始まります。一部のコンバーターは数値と真偽値を自動検出しようとしますが、郵便番号や先頭にゼロのあるIDのような値を破損しないよう、迷った場合は文字列のまま保持します。
JSONとYAMLの違いは何ですか?
同じ種類のデータを表現しますが、YAMLは括弧の代わりにインデントを使い、コメントをサポートし、人が読み書きしやすい設計です。JSONはよりコンパクトでほとんどのWeb APIのデフォルトです。
フォーマット間の変換は常に損失なしですか?
通常はそうですが、常にではありません。JSON・YAML・XMLはほとんどの場合うまくマッピングできます。最も難しいのはフラットで型なしのCSVと、JSONの配列とは異なる方法で属性や繰り返し要素を扱うXMLの組み合わせです。重要なデータは必ず出力を確認してください。
これらのコンバーターは大きなファイルでも動作しますか?
処理があなたのマシンで行われるため、ほとんどの日常ファイルは快適に処理できます。パフォーマンスはサーバーではなくデバイスに依存するため、非常に大きなファイルは主にブラウザのメモリによって制限されます。
