JSONとは
JSON(JavaScript Object Notation)は、データを {"キー": 値} の形で表すテキスト形式です。読み書きしやすく、ほとんどのプログラミング言語で扱えるため、Web API のやり取りや設定ファイル(package.json など)で標準的に使われています。
| 型 | 例 |
|---|---|
| 文字列 | "山田"(必ずダブルクォート) |
| 数値 | 30、3.14、-1e10 |
| 真偽値 | true、false |
| null | null |
| 配列 | [1, 2, 3] |
| オブジェクト | {"a": 1} |
よくある構文エラー
| 原因 | 誤り | 正しい書き方 |
|---|---|---|
| 末尾のカンマ | {"a": 1,} | {"a": 1} |
| シングルクォート | {'a': 1} | {"a": 1} |
| キーのクォート忘れ | {a: 1} | {"a": 1} |
| コメント | // メモ | JSON ではコメントは書けない |
| undefined / NaN | {"a": undefined} | {"a": null} |
コマンドラインで整形する
ターミナルでは jq コマンドや Python を使っても整形できます。
| 方法 | コマンド |
|---|---|
| jq | cat data.json | jq . |
| Python | python3 -m json.tool data.json |
| Node.js | JSON.stringify(obj, null, 2) |
よくある質問
大きな数値の桁が変わってしまいます
JavaScript の数値は 253(約9千兆)を超える整数を正確に扱えません。Twitter(X)の ID のような大きな整数は、整形すると末尾の桁が変わる場合があります。正確さが必要な値は文字列として扱ってください。
「キーを並べ替える」は何に使いますか?
オブジェクトのキーをアルファベット順に並べます。2つのJSONを比較(diff)するときに、キーの順番の違いを無視して中身の違いだけを確認できます。
日本語が あ のように表示されるJSONを読みたい
整形すると \uXXXX 形式の文字は日本語に戻って表示されます。文字列だけを変換したい場合は Unicodeエスケープ変換 も使えます。
APIのレスポンスを貼り付けても大丈夫ですか?
入力したJSONはブラウザ内で処理され、サーバーには送信されません。ただし、トークンや個人情報を含むデータは取り扱いに注意してください。