- JSON5はJSONファイル形式を拡張し、人間が直接記述・保守しやすくした形式
- マシン間通信の用途には使用されない
- 2012年に始まり、2022年時点で週6,500万回以上ダウンロードされ、npmで最も多く依存されているパッケージの上位0.1%に属する
- Chromium、Next.js、Babel、Retool、WebStormなどの主要プロジェクトで採用されている
- macOSやiOSなどのAppleプラットフォームで標準サポートされている
- JSON5の特徴
- JSONのスーパーセットであり、ECMAScript 5.1の一部構文を含む
- JSON5ファイルは常に有効なES5ファイルである
- 拡張されたECMAScript 5.1の機能
- オブジェクト
- オブジェクトキーにはECMAScript 5.1のIdentifierNameを使用できる
- オブジェクトでは単一の末尾カンマを許可する
- 配列
- 文字列
- 文字列はシングルクォートで囲める
- 改行文字をエスケープすることで複数行にまたがることができる
- 文字エスケープを含めることができる
- 数値
- 16進数で表現できる
- 先頭または末尾に小数点を持てる
- IEEE 754の正の無限大、負の無限大、NaNを含めることができる
- 明示的なプラス記号で始めることができる
- コメント
- 空白
- API
JSON5.parse(): JSON5文字列をパースしてJavaScriptの値またはオブジェクトを生成する
JSON5.stringify(): JavaScriptの値をJSON5文字列に変換する
- CLI
- JSON5をJSONに変換したり、JSON5ドキュメントの構文を検証したりするCLIを提供する
- ECMAScript互換性
- JSON5はES5と完全に互換になるよう設計されているが、U+2028およびU+2029文字はES5では許可されていない
- ES2019でこれらの文字が許可され、JSONおよびJSON5はES2019と完全に互換になった
- ライセンス
2件のコメント
JSON5を作りながら学んだこと : アンチは無視しよう
Hacker Newsの意見