テキスト 🔒 ブラウザ内で動作 — データは送信されません

JSONバリデーター

JSONを貼り付けて標準仕様に沿っているか確認します。問題があれば、正確なエラーメッセージと位置を表示します。

入力JSON

JSONをオンラインで検証

カンマが1つ余計なだけで、APIがリクエストを拒否したり、設定ファイルが読み込めなかったりします。しかも、そのときのエラーが役に立つとは限りません。ドキュメントをバリデーターに貼り付ければ、有効なJSONかどうか、そうでなければどこで壊れているのかが一瞬でわかります。

このページはJSON整形ツールを開きます。変更のたびにブラウザーの標準準拠のパーサーで検証し、有効ならドキュメントを整形します。

バリデーターがよく見つけるエラー

ミス無効有効
末尾のカンマ{"a": 1,}{"a": 1}
シングルクォート{'a': 'x'}{"a": "x"}
引用符のないキー{a: 1}{"a": 1}
カンマ抜け{"a": 1 "b": 2}{"a": 1, "b": 2}
コメント{"a": 1 // note}コメントを削除する
文字列内のエスケープされていない改行"…"の中の改行"line 1\nline 2"
特殊な値NaN、undefinednullまたは数値

エラーメッセージの読み方

ブラウザーはJSONのエラーを位置付きで報告します。例えば「Expected double-quoted property name in JSON at position 12」(位置12にダブルクォートで囲んだプロパティ名が必要)のような形です。位置は0から数えた文字数なので、パーサーが処理をあきらめた文字を指しています。本当のミスはたいていその直前にあり、閉じ波括弧の前のカンマや、ダブルクォートにすべきだった引用符などです。

有効であることと正しいことは別

バリデーターが確認するのは構文であって、意味ではありません。キーのつづりが間違っていても、数値が文字列として送られていても、必須のフィールドが欠けていても、JSONとしては有効です。構造を確認するには、コードやCIでJSON Schemaのバリデーターを使ってください。重複したキーにも注意が必要です。厳密には許されていますが、ほとんどのパーサーは何も言わずに最後の値だけを残します。

コードで検証する

  • JavaScript:try/catchの中でJSON.parse(text)
  • Python:json.loads(text)、コマンドラインならpython -m json.tool file.json
  • jq:jq empty file.jsonはファイルが有効なら何も出力しません
  • PHP:PHP 8.3以降はjson_validate($text)

有効になったら、JSON圧縮(Minify)で空白を取り除いて転送に備えましょう。

関連ガイド