概要
- 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エリア で受付
- 各種プラットフォームで利用可能なため、用途に応じて選択可能