MiServe DevTools

あなたのステッカー

ツールをここにピン留めできます。このブラウザに保存されます。

CSV・JSON 相互変換ツール

CSV を JSON に、JSON を CSV に変換します。クォートされたフィールド、カンマ・セミコロン・タブ・パイプ区切り、型の推論、表のプレビューに対応しています。

JSON の出力形式

ブラウザ内で動作します。貼り付けた内容はアップロードされません。

このツールについて

CSV の仕様と、ファイルごとの違い

RFC 4180 では、CSV は改行で区切られたレコードと、カンマで区切られたフィールドからなるものとされています。カンマ、ダブルクォート、改行を含むフィールドはダブルクォートで囲み、その中のダブルクォートは 2 つ重ねて書きます。この形式には型がないため、値はすべてテキストです。また、どの区切り文字や文字コードを使っているかを、ファイル自体で示すことはできません。

実際のファイルはさまざまです。小数点にカンマを使う地域に設定された表計算ソフトは、通常セミコロン区切りで書き出します。データベースツールはタブ区切りで書き出すことが多く、改行コードも CRLF、LF、CR のいずれもあり得ます。このツールはこれらをすべて読み込み、バイトオーダーマーク(BOM)を取り除き、空行を飛ばします。クォートされていないフィールドに紛れ込んだダブルクォートは、テキストとして残します。

CSV から JSON への変換

自動検出では、最初の 20 行をカンマ、セミコロン、タブ、パイプでそれぞれ分割し、得られる列数と、その列数になる行の多さで各区切り文字を採点します。フィールドの途中にダブルクォートが残る区切り文字は点数が下がります。結果はプレビューに表示されるので、推測が外れてもすぐに気づき、手動で直せます。

型を推論をオンにすると、空のフィールドは null に、true と false は真偽値になり、単純な 10 進数は書かれたとおりの JSON の数値になります。つまり 49.90 は 49.90 のままです。それ以外は、数値に見えるだけの値も含めてすべて文字列のままです。007、+39、1e5 は、数量よりもコードであることのほうが多いためです。

フィールド数がヘッダーより少ない行や多い行も変換され、その行番号が一覧表示されます。オブジェクトの配列では、足りないキーは省かれ、余分なフィールドには位置に応じて column_N という名前が付きます。空のヘッダーセルにも同じ形式の名前が付き、重複した名前には _2 のような接尾辞が付くので、値が上書きされることはありません。

JSON から CSV への変換

オブジェクトの配列は、オブジェクトごとに 1 行になります。ヘッダーはすべてのキーを合わせたもので、最初に現れた順に並びます。あるキーを持たないオブジェクトでは、そのフィールドが空になります。ネストした配列やオブジェクトは JSON テキストとしてセルに書き込まれ、null は空のフィールドになります。配列の配列は、そのまま 1 行ずつ書き出されます。

フィールドをクォートで囲むのは、区切り文字、ダブルクォート、改行を含む場合だけです。ダウンロードしたファイルでは、RFC 4180 の規定どおり、レコードが CRLF で区切られます。

よくある質問

ファイルはアップロードされますか?

いいえ。ファイルはブラウザが読み込み、お使いの端末上で変換します。このツールがファイルを含むネットワークリクエストを送ることはなく、サイトのセキュリティポリシーにより、ほかのホストへのリクエストはブロックされます。

007 のような値が文字列のままなのはなぜですか?

JSON の数値は先頭に 0 を付けられません。また、007 を 7 にすると、郵便番号や商品コードでは情報が失われてしまいます。このツールが変換するのは単純な 10 進数だけです。すべての値を文字列のままにするには、「型を推論」をオフにしてください。

区切り文字の検出が間違っていた場合は?

リストから区切り文字を自分で選んでください。検出では最初の 20 行を調べるため、列が 1 つしかないファイルや、行ごとの列数が大きくばらつくファイルでは誤ることがあります。検出された区切り文字は、プレビューの見出しの横の行に表示されます。

セル内の改行はどう扱われますか?

ダブルクォートで囲まれたフィールドには改行を含めることができ、JSON の文字列では \n になります。警告に表示される行番号はファイルの行なので、そのようなフィールドより後では、表の行番号より大きくなります。

データのほかのツール