macOS/iOS Preferences PlistをJSONに変換する
macOSまたはiOSのUserDefaults設定plistをJSONに変換します。混合型とネストされた構造を含む一般的な設定パターンを解説します。
iOS Settings
詳細な説明
UserDefaults Preferences Plist
macOSとiOSはUserDefaultsシステムを使用してユーザー設定を保存し、~/Library/Preferences/にplistファイルとして永続化します。これらのファイルはすべてのplist型を含み、デバッグや移行のためにエクスポートされることがよくあります。
Plist構造
<dict>
<key>ShowSidebar</key>
<true/>
<key>FontSize</key>
<real>14.5</real>
<key>MaxRecentFiles</key>
<integer>20</integer>
<key>WindowFrame</key>
<string>{{100, 200}, {800, 600}}</string>
<key>LastOpened</key>
<date>2025-12-15T09:30:00Z</date>
<key>Theme</key>
<string>dark</string>
</dict>
JSON出力
{
"ShowSidebar": true,
"FontSize": 14.5,
"MaxRecentFiles": 20,
"WindowFrame": "{{100, 200}, {800, 600}}",
"LastOpened": "2025-12-15T09:30:00Z",
"Theme": "dark"
}
混合型ディクショナリ
設定plistは、単一の<dict>にすべてのplist型(ブーリアン、実数、整数、文字列、日付、配列)を含めることができる好例です。型バッジ付きツリービューは、各設定の型を確認するのに特に便利です。
WindowFrameパターン
macOSアプリはウィンドウ位置をNSStringFromRect出力として保存します:"{{x, y}, {w, h}}"。これはネストされた構造ではなく文字列値です。コンバーターはこれをJSON文字列として正しく保持します。
macOSでの設定読み取り
任意のアプリの設定を以下でエクスポートできます:defaults export com.example.myapp - | pbcopyして、結果をこのコンバーターに貼り付けます。
ユースケース
アプリ設定のデバッグ、マシン間の設定移行、またはJSONベースのインターフェースを通じてユーザー設定を表示・変更する管理ツールの構築に役立ちます。