JSON変換時のINIコメントの保持
INIコメント(;または#で始まる行)をJSONの特別なキーとして保持し、INIに戻す際に復元する方法を学びます。
Comments & Edge Cases
詳細な説明
コメント保持の戦略
INIファイルには設定値のコンテキストを提供するコメントが頻繁に含まれます。JSONはネイティブにコメントをサポートしていないため、コンバーターは特別なキーとして保存する「Preserve Comments」オプションを提供しています。
INIの例
; データベース設定
; 更新日: 2024-01-15
[database]
; プライマリ接続
host=db.example.com
port=5432
# コネクションプール設定
max_connections=50
コメント保持あり
{
"__comment_0": "データベース設定",
"__comment_1": "更新日: 2024-01-15",
"database": {
"__comment_2": "プライマリ接続",
"host": "db.example.com",
"port": 5432,
"__comment_3": "コネクションプール設定",
"max_connections": 50
}
}
コメント保持の仕組み
- 各コメント行は連番キー(
__comment_0、__comment_1など)で保存されます ;や#プレフィックスは除去され、コメントテキストのみが保存されます- コメントは現在のスコープに関連付けられます
- INIに戻す際、
__comment_*キーは; コメントテキスト行として出力されます
ユースケース
INIファイルをJSONに解析してプログラム的に変更(値の追加や変更)し、元のドキュメントコメントを保持したままINI形式に書き戻す設定管理の自動化。