PlistのDate型とData型(Base64)のJSON変換

plistのdate要素とBase64エンコードされたdata要素がJSONでどのように表現されるか、またコンバーターがこれらの特殊型をどう処理するかを学びます。

Basic Types

詳細な説明

特殊なPlist型:DateとData

Plist XMLには直接的なJSON対応がない2つの型があります:ISO 8601タイムスタンプ用の<date>とBase64エンコードバイナリコンテンツ用の<data>です。

Plistの例

<dict>
  <key>CreatedAt</key>
  <date>2025-06-15T14:30:00Z</date>
  <key>ModifiedAt</key>
  <date>2025-12-01T09:00:00Z</date>
  <key>IconData</key>
  <data>
  iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJ
  AAAADUlEQVR42mNk+M9QDwADhgGAWjR9awAAAABJRU5E
  rkJggg==
  </data>
</dict>

JSON出力

{
  "CreatedAt": "2025-06-15T14:30:00Z",
  "ModifiedAt": "2025-12-01T09:00:00Z",
  "IconData": "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNk+M9QDwADhgGAWjR9awAAAABJRU5ErkJggg=="
}

日付の処理方法

plistからJSONへの変換では、<date>値はISO 8601文字列になります。JSONからplistへの変換では、コンバーターはISO 8601パターン(YYYY-MM-DDTHH:MM:SS)に一致する文字列を検出し、自動的に<date>タグで囲みます。非ISO日付文字列は<string>のままです。

データの処理方法

<data>にはBase64エンコードされたバイナリが含まれます。JSONではプレーン文字列になります。逆変換ではBase64コンテンツを自動検出しません。これは多くの通常の文字列が有効なBase64であるためです。出力に<data>が必要な場合は、結果を手動で調整する必要があります。

ユースケース

作成タイムスタンプ、変更日、またはアイコンや証明書などの埋め込みバイナリリソースを含むplistファイルを扱う際に重要です。macOSバンドルリソースやプロビジョニングプロファイルでよく見られます。

試してみる — Plist ↔ JSON Converter

フルツールを開く