分析と広告のためのCookie
分析と広告のためにCookieを使っており、どちらもGoogleに送られます。拒否しても、目に見える動作は何も変わりません。プライバシーポリシーを読む
NDJSON を XML にすると、1 行 1 オブジェクトの形式が、`<root>` の下に `<item>` が並ぶ XML になります。JSON や CSV と違い、入れ子になった構造はそのまま維持されます。ただし、キーの名前が日本語だと、そのままではタグ名にできません。処理はあなたのブラウザーの中で完結します。
一度に100ファイルまで。フォーマットが混ざっていても構いません。
順番に変換し、まとめてZIPでダウンロードします。
NDJSON から XML
NDJSON はログ収集やストリーム処理でよく使われる、1 行が 1 つの JSON オブジェクトという形式です。読みやすく、行単位で追記できる一方、XML でしかデータを受け付けない古い業務システムや連携先には、そのままでは渡せません。
ここでの変換は、その受け渡しの橋渡しです。ログの分析結果や API から集めたレコードを、XML を要求する仕組みに渡すときに使います。
NDJSON は改行区切りで JSON オブジェクトが並んだものなので、1 行がそのまま 1 つの `<item>` 要素になります。行全体を包む `<root>` タグが自動的に付き、その下に `<item>` が行の数だけ並びます。
これは、単一の JSON オブジェクトを変換したときとは違う形です。単一のオブジェクトなら、その中の 1 つのキーがそのままルート要素の名前になりますが、NDJSON には最初からその「1 つのキー」がないため、common な `item` の繰り返しになります。
CSV や TSV への変換では、入れ子になったオブジェクトはドット区切りの列名に平らにされますが、XML はもともと入れ子を表現できる形式なので、その処理は行われません。オブジェクトの中のオブジェクトは、要素の中の要素としてそのまま出てきます。
配列も同じ名前のタグの繰り返しとして書き出されます。`{"tags":["a","b"]}` は、`tags` というタグが 2 回、それぞれ `a` と `b` を中身にして並ぶ形になります。
XML の要素名には使える文字に制約があり、ここでの書き出しはアルファベット、数字、アンダースコア、ピリオド、ハイフン以外の文字をすべてアンダースコアに置き換えます。数字で始まる名前の先頭にもアンダースコアが付きます。
**この制約は日本語のキー名に強く効きます。**`{"名前":"田中"}` というレコードのキー `名前` は、2 文字とも対象の文字集合に入っていないため `__` という、何を表しているのか分からないタグ名になってしまいます。日本語のキーを含む NDJSON を変換する予定があるなら、変換前にキー名を英字に直しておくか、変換後にタグ名を手直しする前提で進めてください。
数値と真偽値は文字列としてそのままタグの中身になります。`null` は中身が空のタグとして書かれ、`<value></value>` のような形になります。
文字列の中に含まれる `&` や `<` などの記号は、XML として正しく読めるように自動でエスケープされます。手で直す必要はありません。
NDJSON は 1 行 1 オブジェクトが前提なので、どこかの行が正しい JSON になっていないと、その行番号を含んだ具体的なメッセージで失敗を知らせます。ファイル全体のどこが悪いのか探し回る必要がありません。
空の行は無視されるので、行の間に空行が混じっていても問題にはなりません。
書き出される XML のルート要素は常に `root`、その下の繰り返しは常に `item` です。これらの名前を自分で指定するオプションはありません。
相手のシステムが特定のルート要素名を要求する場合は、変換後に手作業でタグ名を書き換える必要があります。
処理はすべてブラウザーの中で行われ、ログやレコードがどこかにアップロードされることはありません。1 ファイルあたり 100 MB まで、1 度に 100 個までまとめて置けます。
この変換に専用の重いエンジンは必要なく、他のデータ変換と同じ軽い仕組みを共有しています。
| NDJSON | XML | |
|---|---|---|
| 正式名称 | Newline-Delimited JSON | Extensible Markup Language |
| 拡張子 | .ndjson, .jsonl | .xml |
| メディアタイプ | application/x-ndjson | application/xml |
| 最初の公開 | 2013 | 1998 |
| 発行元 | — | W3C |
| 仕様 | — | XML 1.0 |
| ライセンス | オープン標準 | オープン標準 |
| 現在の位置づけ | 現行 | 現行 |
| ブラウザで開けるか | 対応なし | すべてのブラウザ |
| 代わりに検討される形式 | JSON, CSV | JSON, YAML |
失われるものはありません。NDJSON も XML も中身を劣化なしに保持します。この変換が変えるのは包み方であって品質ではないので、劣化が積み重なる心配をせずに何度でも繰り返せます。
XML は今のブラウザーならどれでも開けます。NDJSON はそこまでも届きません。ファイルがウェブページや申込フォームへ向かうのであれば、たいていはそれがこの変換の理由のすべてです。
開くプログラムが重なりません。NDJSON はjqとpandasで、XML はVisual Studio CodeとoXygen XML Editorで開きます。結果を渡す相手には後者のどれかが要ります。
XML は W3C の形式で、1998 年から使われています。規定は XML 1.0 です。Visual Studio CodeとoXygen XML Editorがこの形式を読めます。
XML は 1998 年、NDJSON は 2013 年に登場しました。人に渡すならたいてい古いほうが安全で、新しいほうは同じ仕事をより少ないバイト数で片づけます。
いいえ。この変換は完全にブラウザーの中で行われるので、ファイルが端末から出ることはありません。ご自分で確かめられます。開発者ツールのネットワークタブを開いて、何か変換してみてください。ページそのものと、このサービスの費用をまかなっている分析・広告のリクエストは見えますが、あなたのファイルを運んでいるリクエストはひとつもありません。
はい。アカウントも透かしもなく、消費される 1 日の割り当てもありません。お使いの機械の上で動くので、何度でも戻ってきていただけます。ブラウザーが扱えるのは 100 MB までのファイルで、一度に 100 本です。
いいえ。XML は同じ内容を何も捨てずに保持できるので、結果は品質の点で元のファイルと同じです。
失われるものはありません。NDJSON も XML も中身を劣化なしに保持します。この変換が変えるのは包み方であって品質ではないので、劣化が積み重なる心配をせずに何度でも繰り返せます。