JavaScript Object Notation。データを文字列で表す形式。API通信や設定ファイルで広く使われる。
{
"name": "Yamada",
"age": 30,
"skills": ["Python", "JavaScript"],
"active": true,
"address": null
}
| 型 | 例 | 説明 |
|---|---|---|
| 文字列 | "hello" | 必ずダブルクォート |
| 数値 | 42 3.14 | クォートなし |
| 真偽値 | true false | 小文字のみ |
| null | null | 値がない |
| 配列 | [1, 2, 3] | 順序付きリスト |
| オブジェクト | {"key": "value"} | キーと値のペア |
YAML Ain't Markup Language。インデントで構造を表す。設定ファイル(GitHub Actions等)でよく使う。
name: Yamada age: 30 skills: - Python - JavaScript active: true address: null
| JSON | YAML | |
|---|---|---|
| カッコ | {} [] | なし(インデント) |
| 文字列 | 必ず"" | 省略可能 |
| コメント | 書けない | # コメント |
| カンマ | 要素の区切りに必要 | 不要 |
| 用途 | API通信・データ | 設定ファイル |
| ミス | NG | OK |
|---|---|---|
| 末尾カンマ | "a": 1, | "a": 1 |
| シングルクォート | 'hello' | "hello" |
| コメント | // comment | (JSONでは不可) |
| インデント(YAML) | タブ混在 | スペース2個統一 |
# JSONの構文チェック
python3 -c "import json; json.load(open('file.json'))"
# YAMLの構文チェック
python3 -c "import yaml; yaml.safe_load(open('file.yml'))"