Skip to content

Developers

Plist JSON Converter

Plist JSON Converter

Beta

Convert Apple property lists to JSON and JSON back to an XML plist in your browser. Reads XML and binary bplist files such as Info.plist and .mobileconfig, with dates and data kept explainable.

Use via API
  • Free, no sign-up
  • REST + MCP
  • Updated
  • Reviewed by Olgun Ozoktas

The property list is converted in your browser and is not uploaded to FindUtils. Analytics and ads may load on the page.

Property List
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
JSON

The JSON will appear here..

Why Use Our Plist JSON Converter?

Property lists are how macOS and iOS store app metadata, preferences and configuration profiles, and many of them are saved in a binary format that a text editor shows as noise. Reading an Info.plist on Windows or Linux, diffing preferences, or feeding a configuration profile to a script usually means finding a Mac with plutil, and plutil's own JSON conversion stops at the first date or data value. A generic XML-to-JSON converter gets the structure wrong, because a plist pairs each key element with the value that follows it. This page reads XML and binary plists the way Apple's format defines them and writes JSON that says which strings were dates or data.

A property list is Apple's format for structured data: dictionaries, arrays, strings, integers, reals, booleans, dates and raw data. The same data can be stored as XML, with a <key> element before each dictionary value, or in the binary bplist00 format, which starts with the bytes bplist00 and ends with a trailer that locates every object. Info.plist files in app bundles, preference files and configuration profiles all use it.

The Plist JSON Converter reads both forms without uploading anything. XML is parsed with entities, CDATA sections and comments handled, and an error names its line. Binary plists are decoded object by object, including UTF-16 strings, 64-bit and larger integers, dates counted from 1 January 2001, sets and keyed-archive UIDs, with checks against damaged offsets, reference cycles and excessive nesting. Integers too large for a JSON number are written as strings so no digit is lost.

Going the other way, JSON becomes an XML plist 1.0 with Apple's DOCTYPE and tab indentation. Strings in ISO 8601 UTC form become <date>, strings starting with base64: become <data>, and null is refused because a plist cannot express it. OpenStep-style plists and signed configuration profiles are recognised and refused with the reason.

How it compares

On a Mac, plutil -convert json fails with "invalid object in plist for destination format" as soon as the plist holds a date or data value, and it is not available on Windows or Linux at all. Generic XML-to-JSON converters turn a plist into arrays of key and string elements instead of an object. This page maps plist types directly, reads binary plists too, and keeps the file in your browser.

Plist Conversion Tips

  • JSON has no date or binary type, so <date> becomes an ISO 8601 string and <data> becomes base64. The conversion notes list the path of each one.
  • To write <data> from JSON, start the string with base64: followed by the base64 value. Turn the option off if your strings legitimately start with base64:.
  • A whole number written with a decimal point in JSON, such as 2.0, stays a <real>; 2 becomes an <integer>.
  • Plists have no null. Remove the key or give it a value before converting JSON to a plist; the error names the exact path.
  • The output is always an XML plist. Apple's tools read XML and binary plists alike, and plutil -convert binary1 turns the XML into binary if you need it.

Frequently Asked Questions

What is a plist file?

A plist, or property list, is Apple's file format for structured data such as app metadata, user preferences and configuration profiles. It holds dictionaries, arrays, strings, numbers, booleans, dates and binary data, and it is saved either as XML or in a compact binary format.

How do I convert a binary plist to JSON?

Upload the file with Plist → JSON selected. The page recognises the bplist00 header, reads the file as bytes and shows the JSON. Do not paste a binary plist as text: copying binary data through the clipboard damages it, and the page will tell you so.

How are dates and data converted?

A becomes an ISO 8601 string such as 2026-09-17T08:00:00Z, and becomes a base64 string, or a byte count if you choose that option. The conversion notes list the path of every date and data value, so you know which strings they were.

Can I convert JSON back to a plist?

Yes. Choose JSON → Plist to write an XML plist with Apple's DOCTYPE. Objects become dictionaries, arrays stay arrays, whole numbers become integers, other numbers become reals, ISO 8601 UTC strings become dates and strings starting with base64: become data.

Does it write binary plists?

No. The output is an XML plist, which macOS and iOS read the same way as a binary one. If a tool needs the binary form, run plutil -convert binary1 on the downloaded file.

Why does plutil fail to convert my plist to JSON?

plutil -convert json only accepts plists whose values all have a JSON equivalent. A single or value makes it stop with "invalid object in plist for destination format". This converter writes those values as ISO strings and base64 instead.

Can it read .mobileconfig configuration profiles?

An unsigned .mobileconfig file is an XML plist and converts like any other. A signed profile wraps the plist in a CMS signature, which is not a plist; the page recognises it and asks for an unsigned copy rather than returning partial data.

What about plists with { key = value; } syntax?

That is the older OpenStep or NeXTSTEP text format. It is not read here, and the page says so instead of reporting a JSON error. plutil -convert xml1 on a Mac turns it into an XML plist this page can read.

What happens to very large integers?

JSON numbers are exact only up to 9,007,199,254,740,991. A plist integer beyond that, such as an unsigned 64-bit value, is written as a JSON string with all its digits, and the conversion notes name its path. Converting that JSON back writes the digits into an again if the number is written without quotes.

Is my plist uploaded?

No. The file is parsed and converted by JavaScript in your browser tab. Info.plist files and profiles often contain identifiers, server addresses or certificates, which is why nothing is sent anywhere.

Rate This Tool

0/1000

Get Weekly Tools

Suggest a Tool