JSON5 オンライン解析

ローカル処理
app.json5.view

次の方法でも #data={"name":"Ada"} または #url=... データを流し込めます。読み取り後はアドレスバーから削除されます。

使い方

JSON5 は設定を書くときの緩いスーパーセットです。コメント、末尾カンマ、単引用符、引用符なしキー名を許します。このページは解析して標準 JSON を出し、API や他ツールへ渡せます。VS Code、webpack 設定、手書き JS オブジェクトからコピーした内容は、そのまま JSON.parse できないことが多く、先にこのページを通してください。

コメントを受け付ける

1行 // と複数行 /* */ は捨てられ、データだけ残ります。重要な説明は README などへ別保存し、コメントが標準 JSON に入ると期待しないでください。

「人向け設定」を「プログラムが読む JSON」へ移す一歩に向いています。

末尾カンマ

オブジェクトや配列の最後の項目の後ろのカンマで解析失敗しなくなります。JS / TS オブジェクトリテラルからコピーしたときの最もよくあるエラー原因でもあります。

変換後の出力に末尾カンマは残らず、RFC 8259 に従います。

出力は標準 JSON のまま

結果は JSON.parse とほとんどのバックエンドがそのまま使えます。キー名には二重引用符が付き、単引用符文字列は二重引用符になります。

変換後はフォーマット、検証、Schema 生成を続けられます。

JSON5 入力
{
  // 功能开关
  name: 'json5',
  enabled: true,
  tags: ['a', 'b',],
}
標準 JSON
{
  "name": "json5",
  "enabled": true,
  "tags": [
    "a",
    "b"
  ]
}
コメントは残りますか?

残りません。標準 JSON にコメントはなく、変換後は捨てられます。

JSONC と同じですか?

JSONC はたいていコメント追加だけです。JSON5 はキー名、引用符、数値の書き方も緩めます。このページは JSON5 規則で解析します。

Infinity / NaN は対応していますか?

JSON5 はこの種の数値表記を許します。標準 JSON にしたあと下流が受け入れるかはパーサー次第なので、抜き取り確認してください。

完全な JS 実行器になりますか?

なりません。データリテラルだけ解析し、関数実行や式の計算はしません。

おすすめの手順

  1. 設定ファイルやコードから、コメントと末尾カンマ付きの断片をコピーします。
  2. このページに貼り、右側の出力が JSON.parse できる標準 JSON か確認します。
  3. 結果を API、テスト fixture、他のツールページへコピーします。
  4. 人が編集を続けコメントを残したいときは、JSON に無理に押し込むより YAML を検討してください。

JSON5 は「人が書き、機械が読む前に正規化する」用途です。対外 API は標準 JSON だけを受け、クライアントごとにスーパーセットを書かないでください。