ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|
概要
JSON(ジェイソン、JavaScript Object Notation)は、2001 年頃に Douglas Crockford が JavaScript のオブジェクトリテラル構文をベースに体系化したテキスト型データ交換フォーマットです。2013 年に ECMA-404、2014 年に RFC 7159、2017 年に RFC 8259 / STD 90 として標準化されました。「JavaScript」と名が付くものの言語非依存で、現在では Web API・設定ファイル・ログ・NoSQL(MongoDB など)・IaC など、ありとあらゆる場面で利用されるデータ交換の事実標準(de facto standard)です。
拡張子は .json、MIME タイプは application/json。エンコーディングは UTF-8 が必須(RFC 8259)で、BOM の付与は非推奨です。同じ用途で競合する形式に XML・YAML・TOML・MessagePack・Protocol Buffers などがありますが、シンプルさと普及度で JSON が圧倒的優位を保っています。
構文・データモデル
JSON が持つ値は次の 6 種類だけです。
- object:
{ "key": value, ... }— キーは必ずダブルクォート文字列 - array:
[ value, value, ... ] - string: ダブルクォートで囲む。シングルクォートは不可
- number: 整数・浮動小数点。
NaN/Infinityは不可 - boolean:
true/false(小文字のみ) - null:
null(小文字のみ)
基本的なサンプル:
{
"name": "Alice",
"age": 30,
"active": true,
"roles": ["admin", "dev"],
"address": {
"city": "Tokyo",
"zip": "100-0001"
},
"deleted_at": null
}
コメントは 書けません(// も /* */ も不可)。末尾カンマ(trailing comma)も 不可 です。これらを許す方言として JSON5・JSONC(VS Code の settings.json で使用)がありますが、これらは厳密には JSON ではなく別形式です。
主な用途
- Web API: REST / GraphQL のレスポンス・リクエストボディの大半が JSON
- 設定ファイル:
package.json(Node.js)、tsconfig.json、composer.json(PHP)、.eslintrc.jsonなど - NoSQL ドキュメント: MongoDB の BSON、CouchDB、Firestore など JSON をネイティブに扱う DB
- 構造化ログ: 1 行 1 JSON の JSON Lines(
.jsonl/ NDJSON)形式で Fluentd・Logstash などに集約 - IaC・宣言的定義: AWS CloudFormation テンプレート(JSON 版)、Terraform の
.tf.json - ブラウザ・サーバ間通信:
fetch()+res.json()、Ajax、WebSocket メッセージ
関連形式との比較
| 項目 | JSON | YAML | TOML | XML |
|---|---|---|---|---|
| コメント | 不可 | 可(#) | 可(#) | 可(<!-- -->) |
| 末尾カンマ | 不可 | 不要(インデント) | 配列のみ可 | 該当なし |
| 可読性 | 中(記号多め) | 高(人間向け) | 高(設定向け) | 低(タグ冗長) |
| パース速度 | 非常に速い | 遅い | 速い | 遅い |
| スキーマ | JSON Schema | JSON Schema 流用 | 仕様なし | XML Schema / DTD |
| 主用途 | API・データ交換 | 設定・CI | 設定(特に Rust/Python) | 文書・SOAP・古い API |
編集・パーサ・ツール
- jq: コマンドラインで JSON を整形・抽出・変換する定番ツール。
curl ... | jq '.users[].name'のように使う - JSON Schema: JSON データの型・必須項目・値域などを検証するスキーマ言語。Draft 2020-12 が最新
- 各言語の標準ライブラリ: PHP の
json_encode/json_decode、Python のjson、JavaScript のJSON.parse/JSON.stringify、Go のencoding/json、Rust のserde_json - 整形・検証 Web ツール: JSONLint、JSON Editor Online、各種オンライン JSON フォーマッタ
- VS Code: ネイティブで JSON のシンタックスハイライト・補完・スキーマ連携をサポート
注意点・落とし穴
- キーはダブルクォート必須:
{ name: "Alice" }は JavaScript では合法だが JSON としては不正 - 末尾カンマ禁止:
[1, 2, 3,]はパースエラー。手書きで設定を書くと地味に踏みやすい - コメントを書きたい: コメント欄を
"_comment"キーで埋め込む、または JSONC / JSON5 を採用するなどの回避策が必要 - 数値の精度: JSON 自体は精度を規定しないが、JavaScript で扱うと double(IEEE 754)の範囲(約 53bit)に丸められる。大きな整数 ID は文字列で送るのが安全
- UTF-8 必須: 非 ASCII 文字は
あのような\uエスケープでも書けるが、UTF-8 でそのまま書く方が一般的 - 機密情報を直接書かない: 設定ファイルとして使う場合、API キー等はシークレットマネージャや環境変数(
.env)に逃がす
関連リンク
- Web・データ・設定
- ファイル拡張子とは
- HTML(.html)
- CSS(.css)
- XML(.xml)
- YAML(.yaml / .yml)
- TOML(.toml)
- JSON(JavaScript ビルトインオブジェクト)
- JSON API
- 配列から JSON に変換
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
子ページはありません
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript base URL 取得方法|window.location.origin と SSR/Node.js 対応
- 4 YouTube Data API v3 エラー一覧|403/400/404 の主要原因と切り分け
- 5 Spring Frameworkのアノテーション一覧
- 6 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 7 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- IPv6とは|128bitアドレス・コロン16進表記/::省略・リンクローカル・SLAAC・デュアルスタック NEW 2026-06-22 12:34:44
- MAC アドレスフィルタリングの仕組みと限界 | ネットワーク入門 NEW 2026-06-22 12:19:10
- VPNとは|暗号トンネル・サイト間/リモートアクセス・IPsec/SSL-VPN/WireGuardを解説 NEW 2026-06-22 12:19:10
- Web通信プロトコル入門 HTTP/2・HTTP/3・WebSocket・gRPC・WebRTC | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/2 とは 多重化・HPACK・バイナリフレーム | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/3 (QUIC) とは UDP ベースの低遅延 Web 通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- WebRTC とは ブラウザ間 P2P の音声・映像・データ通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- gRPC とは HTTP/2 + Protocol Buffers の高速 RPC | ネットワーク入門 NEW 2026-06-22 12:17:25
- WebSocket とは 全二重リアルタイム通信 ws/wss | ネットワーク入門 NEW 2026-06-22 12:17:25
- HAProxy とは frontend/backend と設定例 | ネットワーク入門 NEW 2026-06-22 12:17:24
- TLS/SSLの仕組み|ハンドシェイク・暗号スイート・前方秘匿性・証明書検証をわかりやすく解説 NEW 2026-06-22 12:17:24
- CDN とは エッジキャッシュ・TTL・Cloudflare/CloudFront | ネットワーク入門 NEW 2026-06-22 12:17:24
- iptables/nftablesとは|テーブル・チェーン・ルール例・永続化をLinux視点で解説 NEW 2026-06-22 12:17:24
- ファイアウォールとは|パケットフィルタ・ステートフル・DMZ・次世代FW(L4/L7)を解説 NEW 2026-06-22 12:17:24
- 証明書と認証局(CA)とは|X.509・信頼チェーン・DV/OV/EV・失効(CRL/OCSP)を解説 NEW 2026-06-22 12:17:24
コメントを削除してもよろしいでしょうか?