Dev tools

PLIST viewer

View an XML property list (.plist) as JSON. Binary plist (bplist00) is not supported. It needs a separate binary-format parser this tool does not implement. Runs on your device.

Runs on your device. The file is never uploaded.

PLIST viewer prints an XML property list as JSON, turning each dict into an object and true, false, string, integer and real into their JSON counterparts. A date or data element is kept under a __date or __data key, unparsed. A file starting with the bplist magic is refused, so convert it with plutil -convert xml1 first.

Input

Questions

What does this show me?

The contents of an XML property list as JSON, pretty-printed with 2 spaces. Dictionaries become JSON objects, arrays become arrays, string, integer, real, true and false become their JSON equivalents. There are no options; drop the file and read the result.

Why does it refuse my .plist file?

Most likely because it is a binary plist. Files starting with the bplist magic are refused up front with a message saying only XML plists are supported and suggesting you re-export with plutil -convert xml1 first. Many macOS preference files are binary by default, so this is the common case.

What happens to date and data values?

They are kept, but wrapped so you can see what they were. A date element becomes an object with a __date key holding the text exactly as it appeared, and a data element becomes an object with a __data key holding its base64 text. Neither is parsed or decoded further.

Is this a real XML parser?

No, and that is deliberate. It is a small walker that understands only the plist tag set: dict, array, string, integer, real, true, false, date, data and key. Any other element stops it with "unsupported plist element" and the tag name. A file with no <plist> root is refused too.

Can it edit or write a plist?

No. It reads and displays only; there is no write mode and no editing on the page. To change a value, edit the XML yourself and validate it afterwards, or use plutil on macOS, which can also convert between the XML and binary forms. This tool never modifies the file you dropped.

Is my preferences file uploaded?

No. It is read and parsed in a Web Worker in this tab. That is worth knowing because plists often hold account names, file paths, device identifiers and sometimes tokens, and none of it goes anywhere. Nothing is uploaded, nothing is logged, and the page works with the network off.

Related Dev tools

n→nJSON ↔ CBOREncode JSON to CBOR bytes (shown as hex) or decode CBOR bytes back to JSON. Covers uint/negint/text/array/map/float/bool/null; no byte strings, tags, or indefinite-length items.Runs on each file you dropn→nJSON ↔ MessagePackEncode JSON to MessagePack bytes (shown as hex) or decode MessagePack bytes back to JSON. Covers nil/bool/int/float64/str/array/map: no bin, ext, or timestamp extension types.Runs on each file you dropn→nJSON ↔ RisonConvert JSON to Rison (the compact URI-safe notation Kibana/Elasticsearch use for query params) and back. This tool's own encoder/decoder for the documented core grammar (no reference implementation in this codebase to check against). Exotic edge cases like embedded control characters or surrogate-pair characters are not guaranteed byte-identical to the reference grammar.Runs on each file you dropn→nPHP serialize / unserializeConvert JSON to PHP's serialize() format and back. Covers null/bool/int/float/string/array. PHP objects (O:) are not implemented since they need a class registry this tool doesn't have.Runs on each file you dropn→nGeoJSON ↔ CSVConvert GeoJSON Point features to CSV rows and back. LineString/Polygon geometries export as a flattened coordinate list (one-way; CSV->GeoJSON always builds Points). CSV parsing is fully quote-aware (src/csv.ts), so a quoted field holding a comma or a newline no longer shifts the coordinate columns.Runs on each file you dropn→nKML/GPX to GeoJSONConvert a GPX (waypoints/tracks/routes) or KML (Placemarks: Point/LineString/Polygon) file to GeoJSON. A hand-rolled tag scan, not a general XML parser: no styles, nested Folder hierarchy, MultiGeometry, or extended data.Runs on each file you drop