CSV、XML、JSON、HTML、Markdown はそれぞれ異なる規則を持ちます。変換前に見出し、型、属性、入れ子構造を確認するとデータの欠落を防げます。
CSVには組み込みの型がありません。CSVからJSONへの変換では、先頭行を列名、残りの各行をオブジェクトとして扱います。見出しがなければ一意の名前を追加してください。区切り文字はカンマ、セミコロン、タブ、縦棒から入力に合うものを選びます。
区切り文字や改行を含むフィールドは二重引用符で囲み、内部の二重引用符は二つ重ねます。例えば "Tokyo, Chiyoda" は一つの値です。カンマごとに単純分割するだけでは正しく読み取れません。
型推論を有効にすると 42 は数値、true は真偽値になります。00123 のような識別子、電話番号、大きな整数を文字列として保持するには無効にします。取り込む前に行数、列数、空欄を確認してください。
XMLは属性、要素、テキストを区別しますが、JSONはオブジェクト、配列、基本値で表現します。XMLからJSONへの変換では、属性に @ を付ける、接頭辞なしで残す、無視する設定を選べます。<item id="42">Text</item> を変換し、@id と #text の扱いを確認してください。
同名の兄弟要素は配列として検出されます。同じ名前の子要素だけを持ち、自身に属性やテキストがない親は、子が一つでもリストになる場合があります。空、単一、複数の各ケースを試してください。
名前空間の接頭辞は ns:item のようにキー名に残る場合があります。JSONへの変換はXMLの元の構造や、テキストと要素が混在する順序を必ずしも保持しません。それらが重要なら元ファイルも保管します。
JSONからCSVへの変換では、オブジェクトを行、キーを列にします。入れ子オブジェクトは自動展開され、{"address":{"city":"Tokyo"}} は address.city 列になります。展開オプションが制御するのは配列であり、オブジェクトの展開ではありません。
配列の展開を有効にすると {"tags":["api","prod"]} は tags.0 と tags.1 になります。無効にすると配列は一つのセル内のJSON文字列として残ります。セル内のカンマや引用符はCSVの引用規則で保護されます。
レコードによって存在しないキーも確認してください。空のCSVセルだけでは、空文字列、null、欠落フィールドを確実に区別できません。元のJSONへ損失なく戻すには、別途スキーマと型の規則が必要です。
CMSや文書を移行する場合、HTMLからMarkdownへの変換は一般的な見出し、段落、強調、リンク、画像、リスト、コードを変換します。Markdownの方言は同一ではないため、移行先のレンダラーで結果を確認します。
単純な表はGitHub Flavored Markdownで表現できます。結合セル、CSSクラス、複雑なレイアウトには手動調整や移行先が許可するHTMLが必要です。入れ子リスト、空白、コードブロックを重点的に比較してください。
処理はブラウザー内で行いますが、扱える容量は端末とメモリーに依存します。大きなファイルではタブが応答しなくなる場合があります。代表的な一部を先に試し、大量データにはストリーミング処理やスクリプトを検討します。
CSVからJSONへの変換ツールでまず代表的な一部を試してください。処理はブラウザー内ですが、容量は端末のメモリーに制約されます。大きなファイルにはPythonのcsvモジュールなどのストリーミング処理を検討します。
最も多い原因は、XML 属性が削除されることです。コンバーターで属性が保持されるようにしてください。また、XML 名前空間も確認してください。ns:item のような要素は、JSON ではそのままのキー名になります。
1つのツールで直接は変換できません。まず CSV→JSON コンバーターで CSV を JSON に変換し、次に JSON→XML コンバーターで JSON を XML に変換してください。2ステップですが、同じブラウザー内で完結し、データはアップロードされません。
Markdown は意図的に機能が限定されており、一般的な書式ニーズの80%をカバーします。CSS のスタイル、カスタムクラス、複雑なレイアウトには、Markdown に相当するものがありません。
REST API の標準は JSON です。パーサーのサポートが最も充実しており、一般的な構造化データではペイロードサイズが最小で、JavaScript でネイティブにサポートされています。XML は SOAP API やレガシーな企業システムとの連携でのみ使ってください。