CSVをJSONに変換する

例を入れて試す:
出力する形式
読み込む形式 貼り付けると、ここに判定結果を出します。
値の扱い
型にすると 3 は数値、true は真偽値になります。0120 は文字列のままです。

貼り付けると同時に変換します。Ctrl + Enter で結果をコピーできます。

YAML は基本的な構文のみ対応しています(マッピング・シーケンス・ネスト・複数行文字列)。 アンカーやタグなど対応していない書き方は、無視せずに変換を止めて理由を表示します。 データはブラウザの中だけで変換され、どこにも送信されません。

CSVをJSONに変換するときの注意点

CSV には型がありません。すべてのセルがただの文字列です。 JSON には数値・真偽値・null があります。 つまり CSV から JSON への変換では、どの文字列をどの型にするかを、変換する側が決めています。 ここで事故が起きます。

先頭の0が消える

いちばん多いのが、電話番号・郵便番号・商品コードの先頭の0が消える事故です。 0120 を数値として読むと 120 になり、元に戻せません。 表計算ソフトで CSV を開いたときに起きる現象と同じものです。

このツールは、先頭が0の並びを数値にしません。 0120 007 は文字列のまま、0 0.5 は数値として扱います。

セルの中身変換後理由
33(数値)整数として読める
0.50.5(数値)小数として読める
0120"0120"(文字列)先頭が0。電話番号などを壊さない
1e5"1e5"(文字列)指数表記は整数・小数ではない
true / TRUEtrue(真偽値)大文字小文字は問わない
(空のセル)null値が無いことを表す

型の推定そのものを止めたいときは、「数値と真偽値を型にする」のチェックを外してください。 すべての値が文字列になります。データを別のシステムへ渡すときなど、 元の見た目を1文字も変えたくない場合はこちらが安全です。 チェックを外した状態なら、CSV → JSON → CSV と往復させても元の表に戻ります。

YAML では、引用符の有無で型が変わる

YAML はさらに厄介です。zip: 0120 と書くと、 0で始まる数を8進数として読む実装があり、80 になることがあります。 date: 2026-09-08 を日付オブジェクトに変換する実装もあります。 このツールが YAML を書き出すときは、こうした値を zip: "0120" のように 引用符で囲みます。他のツールに渡しても解釈が変わらないようにするためです。

CSVの引用符のルール

CSV でセルの中にカンマ・改行・引用符を入れるには、そのセル全体を " で囲みます。 囲んだ中に " 自体を書くときは、"" と2つ重ねます。

セルにしたい文字列CSV での書き方
新茶,一番摘み"新茶,一番摘み"
言った"そうだ""言った""そうだ"""
改行を含む文章"1行目
2行目"

列がずれる原因のほとんどは、この引用符の扱いです。 セルの中のカンマを区切り文字として数えてしまうと、その行だけ列が増えます。 セルの中の改行はさらに分かりにくく、1行のはずのデータが2行に割れて見えます。 このツールは引用符の中を区切り文字として数えず、セルの中の改行も1つのセルとして扱います。

区切り文字は貼り付けた内容から判定します。カンマ・タブ・セミコロンのうち、 すべての行で個数が揃うものを区切り文字とみなします。 ヨーロッパ圏の表計算ソフトが出力するセミコロン区切りの CSV も、そのまま貼り付けられます。

ネストしたデータを表にするには

JSON や YAML は入れ子にできますが、CSV は縦横の表しか表せません。 そこで、入れ子のキーを . でつないだ1つの見出しにします。これを平坦化と呼びます。

{ "user": { "name": "太郎", "age": 30 } } は、 見出し user.name user.age の表になります。 配列は添字を使い、items.0.name のようになります。 いちばん多い形は、オブジェクトの配列です。 [{...}, {...}] は、要素ごとに1行の表になります。

逆に CSV から JSON へ戻すときは、既定では平坦なままです。 user.name という見出しは、そのままキー user.name になります。 入れ子に戻したいときは「見出しの . をネストに戻す」にチェックを入れてください。 既定でオフにしてあるのは、売上.2026 のように . を含む見出しが元から使われている場合に、勝手に構造を作らないためです。

YAMLの基本的な書き方

YAML は設定ファイルでよく使われる形式です。 キー: 値 で項目を書き、- で始めると並び(配列)になります。 入れ子は行頭の空白で表します。

このツールが対応するのは、マッピング(キー: 値)、シーケンス(- 項目)、 入れ子、文字列・数値・真偽値・null、| と > による複数行文字列までです。 アンカーとエイリアス(& *)、タグ(!!str)、 [1, 2] のようなフロースタイル、1つのファイルに複数のドキュメントを書く形には対応していません。

対応していない書き方が入っていた場合、そこを無視して変換を続けることはしません。 何行目の何が読めなかったかを表示して、変換を止めます。 一部だけ欠けた結果を返すより、止まったほうが気づけるためです。 なお [] と {}(空の配列・空のオブジェクト)だけは、 他に書きようがないため読み書きの両方で扱えます。

YAML はインデントにタブを使えません。タブで字下げされた入力は、その行を示して止まります。 見た目では気づきにくく、他のツールでも同じところでエラーになるはずです。