JSON5⇔JSON変換ツール
コメントや末尾カンマ、クォート無しのキー、シングルクォートの文字列、16進数、Infinity・NaN を含むJSON5(JavaScriptのオブジェクトリテラル風の記述)を、標準のJSONに変換します。逆にJSONをJSON5へ変換して、キーのクォート省略やシングルクォートで読みやすく整えることもできます。変換後のJSONの検証・整形には JSON整形 もご利用ください。
🔒 ブラウザ内で完結・入力データはサーバーに送信されません
注意事項
- JSON5のコメントはJSONに書けないため、JSONへ変換すると失われます。16進数は10進数に、シングルクォートはダブルクォートに置き換わります。
- JSONにはInfinityとNaNがないため、「JSON5→JSON」では null または文字列に置き換えます。「JSON→JSON5」の入力にはそのまま書けて、出力にも保持されます。
- 2^53 を超える整数は、JavaScriptの数値の精度の都合で正確に表せず、丸められることがあります。
- 同じキーが複数あるときは、最後の値が使われます。
用語解説
JSON5
JSONを拡張し、コメント・末尾カンマ・クォート無しキー・シングルクォート・16進数などを書けるようにした形式です。人が手で書く設定ファイル向けで、JSONはJSON5の部分集合です。
末尾カンマ
配列やオブジェクトの最後の要素のあとに付けるカンマです。要素の追加や並べ替えで差分が小さくなりますが、標準のJSONでは構文エラーになります。
プロトタイプ汚染
"__proto__" のようなキーを悪用して、JavaScriptのオブジェクトの共通の土台(プロトタイプ)を書き換える攻撃です。このツールは通常のデータとして安全に扱います。
よくある質問
JSON5とJSONの違いは何ですか?
JSON5はJSONの上位互換で、コメント、末尾カンマ、クォート無しのキー、シングルクォートの文字列、16進数、Infinity・NaN などを書けます。標準のJSONはこれらを受け付けないため、APIなどに渡す前にこのツールでJSONへ変換できます。
JavaScriptのオブジェクトリテラルをそのまま貼り付けられますか?
キーがクォート無し、値がシングルクォートといった、データだけの記述なら変換できます。関数や変数、テンプレートリテラル、正規表現など、コードとして評価が必要なものは扱えません。このツールは入力を実行せず、専用の読み取り処理だけで解析します。
InfinityやNaNはJSONにするとどうなりますか?
JSONでは表せないため、「JSON5→JSON」では null か文字列("Infinity" など)に置き換えます。置き換えた個数は結果の下に表示されます。
エラーの場所はどのように表示されますか?
構文エラーは「何行目の何列目か」と原因つきで表示されます。多いのは、閉じ忘れた括弧やクォート、キーと値の間のコロン抜け、カンマ抜けです。
このページをシェア
