とほほのJSON5入門
- 初版:2026年2月1日
- 更新:2026年2月1日
目次
JSONL5とは
- JSON を拡張したスーパーセットです。
- ECMAScript 5.1(ES5) の文法をベースにしていることから JSON5 と名づけられています。
- コメントやケツカンマが許されるなど、JSON に欲しかった機能がサポートされています。
仕様
下記で仕様が公開されています。
詳細
コメント
// から行末まで、または /* から */ の間をコメントとして無視します。
{
"name": "Yamada", // 名前
"age": 36 /* 年齢 */
}
シングルクォーテーション(')
キーや文字列をダブルクォーテーション("...")の代わりにシングルクォーテーション('...')で囲むことができます。
{ 'name': 'Yamada', 'age': 36 }
キーはクォーテーション不要
キーが JavaScript の識別子として使用できるものであれば、キーをクォーテーションで囲む必要はありません。
{ name: "Yamada", age: 36 }
キーがハイフン(-)を含んだりする場合はクォーテーションが必要です。
{ user-name: "Yamada", age: 36 } // ERROR
ケンカンマが許される
オブジェクトや配列の最後の値の後にカンマ(,)を記述することが許されます。
{
"name": "Yamada",
"age": 36,
}
{
"colors": [
"Red",
"Green",
"Blue",
]
}
文字列途中で改行できる
文字列の途中でもバックスラッシュ(\)を用いて改行することができます。バックスラッシュの後の改行は無視されます。
{
"message": "ERROR: \
File is not found."
}
エスケープシーケンスが使える
\x41 などのようなエスケープシーケンスを使用できます。
{ "message": "\x41" }
16進数数値を記述できる
0x を用いた16進数の数値を記述できます。
{ "number": 0x125F }
小数点数の先頭や末尾がピリオドでもよい
小数点数のピリオド(.)を先頭や末尾に記述できます。
{ "point1": .23, "point2": 34. }
正数のプラス記号を記述できる
正の数にプラス(+)記号をつけることができます。
{ "number": +123 }
無限大(Infinity)や非数値(NaN)を指定できる
数値として無限大(Infinity) や 非数値(NaN) を記述できます。
{ "number1": Infinity, "number2": NaN }
ライブラリ
Python
json5 モジュールが使用できます。
pip3 install json5
import json5 data = json5.loads(json5_text)
Node.js
json5 モジュールが使用できます。
npm install json5
const JSON5 = require('json5')
JSON5.parse(json5_text)
Copyright (C) 2026 杜甫々
http://www.tohoho-web.com/ex/json5.html