機能
JSON5 は人が手で書くファイル向けに設計された JSON の拡張です。コメント、末尾カンマ、引用符なしのオブジェクトキー、シングルクォート文字列、より書きやすい数値表記が使えます。Babel や一部のバンドラー、多くのアプリケーションが設定ファイルとして JSON5 や JSONC(コメント付き JSON。tsconfig.json や VS Code の設定で使われています)を受け付けます。
しかし、多くのパーサー、API、プログラミング言語は厳格な JSON しか受け付けません。この変換ツールは JSON5 や JSONC を読み込み、どの JSON パーサーでも読める標準 JSON を出力します。キーはすべてダブルクォートで囲まれ、コメントも末尾カンマもなく、数値は 10 進数で書かれます。
使い方
- JSON5 または JSONC を貼り付けるか、
.json5・.jsonc・.jsonファイルをアップロードするか、サンプル を押します。 - インデント を選びます:2 または 4 スペース、あるいは 1 行にまとめる 圧縮。
InfinityとNaNの扱いを選びます:nullに変換、文字列に変換、またはエラーにする。- 生成された JSON をコピーまたはダウンロードします。
入力に構文エラーがある場合は行番号と列番号が表示されるので、その位置にすぐ移動できます。通常の JSON も正しい JSON5 なので、ファイルが解析できるかの確認や再インデントにも使えます。
例
次の JSON5 設定は:
// Server settings
{
host: 'localhost',
port: 0x1F90, // 8080
ratio: .5,
tags: ['api', 'v2',],
}
次の厳格な JSON になります:
{
"host": "localhost",
"port": 8080,
"ratio": 0.5,
"tags": [
"api",
"v2"
]
}
コメントは削除され、キーと文字列はダブルクォートで囲まれ、16 進数と整数部を省略した小数は 10 進数に書き直され、末尾カンマは取り除かれます。
変換される内容
//の行コメントと/* */のブロックコメントを削除します。portのような引用符なしのキーや'localhost'のようなシングルクォート文字列をダブルクォートにします。- 行末のバックスラッシュで続けた文字列を 1 つの文字列にまとめます。
- 16 進数(
0xFF)、整数部や小数部を省略した小数(.5、5.)、明示的なプラス記号(+3)を通常の 10 進数にします。 - オブジェクトや配列の末尾カンマを取り除きます。
- 同じキーが 2 回現れた場合は、JavaScript と同じく最後の値が使われます。
よくある質問
› JSON5 と JSONC の違いは何ですか?
JSONC は JSON にコメントを加えたものです(VS Code では末尾カンマも許可)。JSON5 はさらに、引用符なしのキー、シングルクォート文字列、複数行文字列、16 進数、整数部や小数部を省略した小数、Infinity と NaN を使えます。JSON5 は JSONC の上位互換なので、このツールはどちらも読み込めます。
› コメントは残りますか?
残りません。標準 JSON にはコメントの構文がないため削除されます。残したい場合は JSON5 ファイルを元データとして保持し、そこから JSON を生成してください。
› Infinity と NaN はどうなりますか?
厳格な JSON では表現できません。既定では JavaScript の JSON.stringify と同じく null になります。文字列に変換するか、該当するパスを示してエラーにすることもできます。
› データはアップロードされますか?
いいえ。解析と変換はすべてブラウザー内で行われるため、秘密情報を含む設定ファイルが端末の外に出ることはありません。