Plist to JSON Converter

Convert macOS XML or binary plist to JSON in your browser

Ad placeholder (leaderboard)

The Plist to JSON Converter transforms Apple property list files into clean, standard JSON that you can use in scripts, configuration pipelines or any tool that speaks JSON. Property lists power preferences and metadata across macOS and iOS, but their XML and binary encodings are awkward to work with outside the Apple ecosystem. This converter bridges that gap, handling both formats in the browser.

How it works

The converter detects the format from the file’s first bytes. Files beginning with bplist are treated as binary; everything else is parsed as XML.

For binary plists, the tool reads the 32-byte trailer to find the object count, the offset-table location and the top object, then walks the typed object table. Each Apple type is translated to its closest JSON form: NSString to a JSON string, NSNumber to a number or boolean, NSArray to an array and NSDictionary to an object. Because JSON has no date or binary types, NSDate values are emitted as ISO-8601 strings (converted from Apple’s 2001 reference epoch) and NSData blobs are emitted as base64 strings.

For XML plists, the browser’s DOMParser reads the document and the same type mapping is applied element by element. The result is serialised with two-space indentation so it is easy to read and diff.

Example

A plist dictionary like this:

<dict>
  <key>Name</key><string>Gera</string>
  <key>Count</key><integer>3</integer>
  <key>Enabled</key><true/>
</dict>

converts to:

{
  "Name": "Gera",
  "Count": 3,
  "Enabled": true
}

Tips and notes

  • Nested dictionaries and arrays convert recursively, preserving the full structure.
  • Use the Copy button for quick pasting, or Download to save a .json file.
  • To browse a plist as a tree instead of converting it, try the Plist Viewer.

Everything runs locally in your browser — nothing is uploaded.

Ad placeholder (rectangle)