Skip to content

Plist to JSON

Convert any property list — XML, binary or OpenStep — to clean, indented JSON you can paste straight into code.

  • Binary plists supported
  • Indented JSON output
  • Copy or download
  • Runs in your browser
Ready to open a file processed locally — nothing is uploaded

JSON turns dates and data into strings and loses plist type distinctions. Duplicate keys and numeric-key ordering may change. Keep the original plist for a lossless reference.

How types are mapped

  • string, integer, real and boolean map to their JSON equivalents
  • date becomes an ISO 8601 string
  • data becomes a base64 string
  • dict and array become objects and arrays; duplicate dictionary keys collapse and numeric-looking keys may reorder

Careful with round-trips

JSON has no separate integer and real types and no date or data type, so converting to JSON and back is lossy by nature. If you need to edit a plist and keep it a plist, edit it in the tree and download it as XML or binary instead.

Try an input and compare the output

These small synthetic examples contain no personal data. Use Load sample above to inspect the same values in the tree.

<date>2026-01-01T00:00:00Z</date>
<data>SGk=</data>
{
  "Created": "2026-01-01T00:00:00.000Z",
  "Data": "SGk="
}

The two XML values are excerpts from the sample's Created and Data fields. JSON cannot tell these strings apart from ordinary text.

Conversion rules and limits

PlistJSONWhat to check
integer / realnumber1 and 1.0 become the same JSON number; JSON import uses integer for whole numbers.
date / datastringISO date / Base64 text. Reverse conversion does not infer their original types.
UIDnumberThe UID tag is lost. XML export uses a CF$UID dictionary; confirm archive compatibility.
No equivalentnullJSON to Plist rejects null instead of silently replacing it.
dictobjectDuplicate keys collapse and numeric-looking keys may reorder in JSON. Use unique keys.

Numbers use JavaScript precision. JSON imports reject non-finite numbers and integers outside ±9,007,199,254,740,991. Decimal fractions can round; represent exact identifiers or decimals as strings. This tool is not an arbitrary-precision converter.

Keep plist types when editing · Apple's property-list types

Frequently asked questions

Does it handle binary plists?
Yes — many converters only accept XML. Binary bplist00 files work here too.
Can I go the other way?
Yes, use the JSON to Plist page.