Apple の plist ファイルを JSON に変換する
Apple のプロパティリスト(plist)はデータを XML またはバイナリ形式でシリアライズします。JSON に変換してクロスプラットフォームでの利用と簡単な操作を実現します。
- 1
Apple の plist ファイルには 2 つの形式があります。XML(人が読める、旧)とバイナリ(コンパクト、新)です。macOS と iOS アプリの設定(Info.plist、環境設定、entitlements)を格納します。XML 形式は特定のタグを使います:<dict>、<array>、<string>、<integer>、<true/>、<false/>。
- 2 XML フォーマッター →
XML plist をフォーマットして構造を検証します。plist XML には厳格なスキーマがあります:<plist version="1.0"> ルートに単一の <dict> または <array>。フォーマットで不正な XML を捕捉し、plist 構造を確認します。
- 3 JSON XML 相互変換ツール →
XML plist を JSON に変換します。plist の <dict> は JSON オブジェクトに(キーは <key> 要素、値はその次の要素)、<array> は JSON 配列になり、プリミティブ型は JSON の等価物にマッピングされます。
- 4
バイナリ plist は先にデコードが必要です(macOS では plutil -convert xml1 file.plist)。クロスプラットフォームプロジェクトでは、ビルド時に plist を JSON に変換し、Xcode 用には JSON から plist を生成します。これによりバージョン管理の差分(バイナリ plist は差分が取りにくい)とクロスプラットフォームツールが可能になります。
よくある質問
- XML plist とバイナリ plist のどちらですか?
- バイナリはよりコンパクトで読み書きが高速です。XML は人が読め、バージョン管理に適しています。開発には XML を(差分が良い)、配布にはバイナリに変換してください。Xcode はどちらも使え、自動的に変換します。
- JSON は plist のすべてを表せますか?
- ほぼ。plist は NSDate(日付)、NSData(バイナリ)、NSNull をサポートします。JSON には日付型もバイナリ型もありません。日付は ISO 8601 文字列として、バイナリは base64 としてエンコードしてください。正確な plist の忠実性が必要ならラッパー形式を使ってください。
このタスクを解決するワークフロー
JSON から XML へ変換
JSON ドキュメントを XML 形式に変換し、XML のみを受け付けるレガシー統合に対応する。 パイプライン
JSON からフォーマット済み XML へ変換
JSON ドキュメントを XML に変換し、可読性のために結果を整形する。 パイプライン
Plist から JSON を経て XML へ変換
Apple Plist を JSON に変換し、その後汎用 XML に変換する。 パイプライン
生 XML ドキュメントのフォーマット
ミニファイまたは未フォーマットの XML ドキュメントを人間のレビューのために整形する。 パイプライン
XML から JSON を経て CSV へ変換
XML ドキュメントを JSON 中間体経由で CSV に平坦化し、スプレッドシート消費に対応する。 パイプライン
XML から JSON を経て YAML へ変換
XML を JSON に変換し、その後設定生成のために YAML に変換する。 パイプライン