フラクチャードJSON
105日前原文(github.com)
概要
- FracturedJsonは、人間にとって読みやすく、かつコンパクトなJSONフォーマットを自動生成するツール群
- 配列やオブジェクトを可能な限り1行で表現し、似た構造の場合は表形式で整列
- 豊富な設定項目があるが、通常はデフォルトで十分な利便性
- .NETライブラリ、JavaScript/TypeScriptパッケージ、VS Code拡張機能として利用可能
- 標準JSONでは非対応のコメント保持もオプションでサポート
FracturedJsonの特徴
- FracturedJsonは、JSONデータを人間が読みやすい形で出力するユーティリティ群
- 配列やオブジェクトを短く単純な場合は1行で出力
- 似た構造の複数行は表形式で整列
- 長い配列は複数アイテムを1行にまとめて複数行で表現
- 自動的に最適なフォーマットを選択し、どんなJSONでも見やすい出力を生成
- Webブラウザ用フォーマッタページで試用可能
- .NETライブラリ、JavaScript/TypeScriptパッケージ、Visual Studio Code拡張で提供
- Python向けの選択肢も存在
サンプル出力例と設定
- デフォルト設定での出力例を公式サイトで確認可能
- 各種設定(例:MaxInlineComplexity、MaxCompactArrayComplexityなど)で出力スタイルを細かく制御
- オプションページで設定ごとの出力例を参照可能
コメント保持機能
- 標準JSONはコメント非対応だが、FracturedJsonはコメントも保持可能
- コメントは関連要素と一緒に適切に配置される設計
背景と動機
- 一般的なJSONライブラリは「最小化(minified)」と「整形(インデント)」の2択のみ
- 最小化JSON:効率的だが人間には読みにくい
- 整形JSON:広がりすぎて情報把握やスキャンが困難
- FracturedJsonは人間が直感的に読みやすいフォーマットを自動で実現
フォーマット方法の種類
-
Inlined
- 内容が単純・短い場合は1行で出力
- ネストの深さはMaxInlineComplexityで制御
-
Compact Multiline Array
- 配列を複数アイテム/行で複数行出力
- ネストの深さはMaxCompactArrayComplexityで調整、-1で無効化
-
Table
- 同種のインライン要素が並ぶ場合、表形式で整列
- ネストの深さはMaxTableRowComplexityで調整、-1で無効化
- TableCommaPlacementでカンマの位置を調整可能
-
Expanded
- 上記いずれにも当てはまらない場合は複数行・インデント付きで出力
利用方法・ディスカッション
- 疑問点・要望・意見は公式のDiscussionsエリアで受付
- 各種プラットフォームで利用可能なため、用途に応じて選択可能