Skip to content

Apple plist to JSON

Convert an Apple XML property list to JSON, and JSON back to a plist.

Input
Output

Apple plist to JSON

Paste an Apple XML property list (.plist) and this tool converts it to JSON — or paste JSON and convert it the other way, back into a plist. It handles every plist type: dictionaries and arrays become JSON objects and arrays, strings and booleans map directly, and integers and reals become JSON numbers.

Dates and binary data need extra care, since JSON has no native types for them. Turn on "ISO 8601 dates" to render a plist date as a plain ISO 8601 string — or, on the way back, to detect an ISO-looking JSON string and turn it into a date again; turn the option off and a date becomes a small marker object instead, tagged so the round trip stays lossless. The "data content" option controls how a plist's base64-encoded data blocks appear in JSON: kept as base64 text, or decoded to readable text when the payload is actually UTF-8. Other options cover indentation, alphabetically sorting dictionary keys, and — for plists missing the standard DOCTYPE header — tolerating that omission instead of rejecting the file.

If the plist markup is malformed, the error names the problem and, when "Report line number on error" is on, points at the exact line so you can find it in a large file quickly. Very large plists and JSON documents are handled the same way as any other input, up to the tool's output size limit.

Everything runs locally in your browser — a plist can hold app preferences or device configuration, and none of it is ever uploaded. Copy the result, download it as a .txt file, or send the output straight back into the input to keep transforming it.

FAQ

What is a plist file?
A property list (.plist) is Apple's XML format for structured configuration data — app preferences, iOS/macOS settings and Info.plist files all use it.
What happens to dates and binary data?
Dates become ISO 8601 strings (or a round-trip marker object when "ISO 8601 dates" is off), and <data> blocks become a base64 string or decoded text, depending on the "<data> content" option.
Can it convert JSON back into a valid plist?
Yes — switch the direction to "JSON to plist" and it rebuilds a complete, DOCTYPE-declared plist document, including nested dictionaries and arrays.
What does "Tolerate missing DOCTYPE" do?
Some plist files omit the standard <!DOCTYPE plist …> declaration. Turning this on accepts the file anyway instead of reporting it as malformed.
Is my plist or JSON uploaded anywhere?
No. The conversion runs entirely in your browser — your file never leaves your device.