コンテンツへスキップ
uencoder

Apple の plist ファイルを JSON に変換する

Apple のプロパティリスト(plist)はデータを XML またはバイナリ形式でシリアライズします。JSON に変換してクロスプラットフォームでの利用と簡単な操作を実現します。

  1. 1

    Apple の plist ファイルには 2 つの形式があります。XML(人が読める、旧)とバイナリ(コンパクト、新)です。macOS と iOS アプリの設定(Info.plist、環境設定、entitlements)を格納します。XML 形式は特定のタグを使います:<dict>、<array>、<string>、<integer>、<true/>、<false/>。

  2. 2
    XML フォーマッター →

    XML plist をフォーマットして構造を検証します。plist XML には厳格なスキーマがあります:<plist version="1.0"> ルートに単一の <dict> または <array>。フォーマットで不正な XML を捕捉し、plist 構造を確認します。

  3. 3
    JSON XML 相互変換ツール →

    XML plist を JSON に変換します。plist の <dict> は JSON オブジェクトに(キーは <key> 要素、値はその次の要素)、<array> は JSON 配列になり、プリミティブ型は JSON の等価物にマッピングされます。

  4. 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 の忠実性が必要ならラッパー形式を使ってください。

このタスクを解決するワークフロー

関連ツール