JSON を TSV に変換

ここで JSON を TSV に変換できます。無料、アカウント不要です。ファイルを上の枠に落とせば、数秒で結果がダウンロードできる状態になります。 変換はお使いのブラウザーの中で行われるので、ファイルはアップロードされません。Windows でも macOS でも Linux でも、iPhone でも Android でも同じように動き、通信を切っても動き続けます。

  • 処理される場所 ブラウザーの中です。ファイルがアップロードされることはありません。
  • 作り直し TSVはJSONとは仕組みが違います。非可逆コーデックのような段階的な劣化ではありません。TSVが表現できるものは忠実に再現され、対応するものがないものはまったく残りません。
  • ファイルサイズの上限 1ファイルあたり100MBまで。無料、アカウント不要です。
  • 知っておきたいこと 入れ子のオブジェクトは平らにされて列になります。深く入れ子になったデータは形を失います。

一度に100ファイルまで。フォーマットが混ざっていても構いません。

JSON の階層は、フラットな列に変換される

表形式には本来「入れ子」という概念がありません。JSON の値がオブジェクトや配列を含んでいる場合、この変換は 1 つの葉の値ごとに 1 つの列を作り、そこへ至る経路をドットでつないだ名前を列名にします。配列の添字も経路の一部として扱われます。

例えば `{"user":{"name":"田中","tags":["a","b"]}}` は `user.name`、`user.tags.0`、`user.tags.1` という 3 つの列に平らにされます。元の階層構造を知らないと、この列名だけでは意味がつかみにくくなることもあります。

これはこのサイトの表計算系の書き出し全般に共通する処理

JSON から TSV、CSV、SQL、INI、XLSX、Parquet へ書き出す場合、すべてこの同じ「平らにする」処理を経ます。逆に JSON、YAML、TOML、XML、NDJSON へ書き出す場合は、階層構造がそのまま保たれます。

つまり、階層を保ったまま別の形式に移したいだけなら TSV は向いていません。表計算ソフトで開きたい、という目的がある場合にだけ意味を持つ変換です。

配列の要素数が行ごとに違う場合

JSON の配列は要素の個数が値によってまちまちなことがあります。この変換ではその個数の違いがそのまま列の有無に表れ、要素の少ない値の行は該当する列が空欄になります。

結果として、同じ構造のはずのデータでも、行ごとに列の埋まり方が異なる TSV になることがあります。想定より列数が多くなっていないか、書き出し後に確認しておくと安心です。

数値と真偽値はそのまま列の値になる

JSON の数値や真偽値は、TSV の中ではテキストとして書き出されます。この変換自体が新たに型を変えることはなく、JSON にあった値がそのまま文字として並びます。

一方で、TSV や CSV を再び JSON に戻すときには型の推定が働くため、往復させると `007` のような先頭の 0 を持つ文字列が数値に変わってしまうことがあります。識別子を含むデータを扱う場合は注意してください。

列の順序

列の並び順は、データの中に現れた経路の順序に従います。並び替えを行う機能はなく、元の JSON の構造がそのまま列の並びに反映されます。

複数のオブジェクトでキーの並びが異なる場合、最初に現れた順序が優先され、あとから出てきた新しいキーは末尾に追加されます。

どのくらいの大きさまで扱えるか

解析と平坦化はブラウザーの中で行われ、限界はメモリーです。データ全体をいったんメモリー上に展開してから書き出すためです。数十メガバイトは普通に通ります。

数百メガバイト規模の JSON を扱う場合は、ブラウザーの変換機ではなく、逐次処理のできるスクリプトのほうが確実です。

JSON を TSV に変換する手順

  1. お手元の JSON ファイル をこのページに落とすか、押してファイルを選んでください。
  2. 変換先に TSV を選びます。変換はブラウザーの中で行われ、ファイルはアップロードされません。
  3. できあがった TSV ファイル をダウンロードします。

JSON と TSV——何が変わるか

JSONとTSVの比較
JSONTSV
正式名称JavaScript Object NotationTab-Separated Values
拡張子.json.tsv, .tab
メディアタイプapplication/jsontext/tab-separated-values
最初の公開20011993
仕様RFC 8259IANA text/tab-separated-values
ライセンスオープン標準オープン標準
現在の位置づけ現行現行
ブラウザで開けるかすべてのブラウザ対応なし
代わりに検討される形式XML, YAML, NDJSONCSV

結果を開く

TSV を読めるブラウザーはありません。その点では、2 つのうち通用する場所が狭いのはこちらです。送る前に、受け取る側がこれを受け付けるかどうか確かめてください。

開くプログラムが重なりません。JSON はVisual Studio Code、jq、Postmanで、TSV はMicrosoft Excel、LibreOffice Calc、pandasで開きます。結果を渡す相手には後者のどれかが要ります。

どちらの形式が何のためのものか

JSON は 2001 年に登場しました。 RFC 8259 で規定されています。ファイルが、それを書いた道具より長く生きなければならないなら、この一点には値打ちがあります。

TSV は 1993 年から使われています。規定は IANA text/tab-separated-values です。Microsoft Excel、LibreOffice Calc、pandasがこの形式を読めます。

JSON から TSV:よくある質問

JSON ファイル はどこかにアップロードされますか。

いいえ。この変換は完全にブラウザーの中で行われるので、ファイルが端末から出ることはありません。ご自分で確かめられます。開発者ツールのネットワークタブを開いて、何か変換してみてください。ページそのものと、このサービスの費用をまかなっている分析・広告のリクエストは見えますが、あなたのファイルを運んでいるリクエストはひとつもありません。

JSON から TSV への変換は無料ですか。

はい。アカウントも透かしもなく、消費される 1 日の割り当てもありません。お使いの機械の上で動くので、何度でも戻ってきていただけます。ブラウザーが扱えるのは 100 MB までのファイルで、一度に 100 本です。

JSON を TSV に変換すると品質は落ちますか。

JSON と TSV は、内容の表し方が根本から違います。ですからこの変換は複製ではなく再構築です。誠実ではありますが、1 バイトも同じというわけではありません。 入れ子のオブジェクトは平らにされて列になります。深く入れ子になったデータは形を失います。

TSV ファイル はブラウザーで開けますか。

TSV を読めるブラウザーはありません。その点では、2 つのうち通用する場所が狭いのはこちらです。送る前に、受け取る側がこれを受け付けるかどうか確かめてください。

これらのフォーマットについて