本文へスキップ
にゃんこツール

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" など)に置き換えます。置き換えた個数は結果の下に表示されます。

エラーの場所はどのように表示されますか?

構文エラーは「何行目の何列目か」と原因つきで表示されます。多いのは、閉じ忘れた括弧やクォート、キーと値の間のコロン抜け、カンマ抜けです。

このページをシェア

↑↓ 選択 Enter 開く Esc 閉じる