---
title: "Plist JSON Converter"
description: "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."
url: https://findutils.com/developers/plist-json-converter/
category: developers
---

# Plist JSON Converter

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 this tool:** [Plist JSON Converter](https://findutils.com/developers/plist-json-converter/)

## Programmatic access

- REST id `plist-json-converter`: POST https://api.findutils.com/api/tools/plist-json-converter/execute (reference: https://findutils.com/api/plist-json-converter/)
- MCP tool `plist_json_converter` on https://mcp.findutils.com (reference: https://findutils.com/mcp/plist-json-converter/)

## 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.

## 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.

## Related Tools

- [Webloc to URL](https://findutils.com/convert/webloc-to-url/)
- [INI JSON Converter](https://findutils.com/developers/ini-json-converter/)
- [Properties JSON Converter](https://findutils.com/developers/properties-json-converter/)
- [JSON YAML Converter](https://findutils.com/developers/json-yaml-converter/)
- [JSON Formatter](https://findutils.com/developers/json-formatter/)
- [XML Formatter](https://findutils.com/developers/xml-formatter/)
- [Clean ZIP](https://findutils.com/convert/clean-zip/)
