AI Tools Free

Plist to JSON Converter

Paste an Apple XML `.plist` (`Info.plist`, `entitlements.plist`, or `launchd` service config) to convert `<dict>`, `<array>`, `<string>`, `<integer>`, `<real>`, and `<true/>`/`<false/>` nodes into typed JSON.

Free to useNo sign-upRuns in your browser
Enter your details

Enter the inputs, then select Convert Plist to JSON.

Choose indentation level for the output JSON.

Paste an Apple XML Property List (<plist> or <dict> root).

Your result
Enter your details

Result will appear here

How the Plist to JSON Converter Works

The converter parses your XML string with the browser's `DOMParser`, locates the root `<plist>` child (or direct `<dict>`/`<array>` element), recursively walks every typed node, and serializes the resulting JavaScript structure with `JSON.stringify`.

parsePlistNode(el): dict -> Object.fromEntries(keyValuePairs), array -> el.children.map(parsePlistNode).

Detects XML syntax errors or unpaired `<key>` tags inside `<dict>` blocks and reports an immediate diagnostic error.

Plist to JSON Converter workflow overview
Workflow overview for Plist to JSON Converter.

Apple XML Plist to JSON Type Mapping Reference Table

How each Apple DTD PropertyList-1.0 XML element translates into standard RFC 8259 JSON.

Plist XML ElementExample Plist MarkupJSON Output TypeConversion Rule
<dict> ... </dict><key>id</key><string>app</string>Object { "id": "app" }Pairs alternating <key> and value sibling nodes.
<array> ... </array><array><string>arm64</string></array>Array ["arm64"]Preserves ordered sequence of child elements.
<integer> / <real><integer>42</integer> / <real>16.0</real>Number (42 / 16)Parsed as exact numeric literals.
<true/> / <false/><true/>Boolean (true / false)Self-closing boolean tags map to native JSON booleans.
<date> / <data><date>2026-10-22T00:00:00Z</date>String (ISO-8601 / Base64)Whitespace inside <data> Base64 blocks is normalized.

How to Convert an XML .plist File to JSON

Transform any Apple Property List in three steps.

Paste your XML .plist content into the workspace

Paste the full XML `.plist` document (including or omitting the `<?xml ...?>` and `<!DOCTYPE ...>` headers).

Plist to JSON Converter step 1: Paste your XML .plist content into the workspace
Step 1 workflow overview for Plist to JSON Converter.

Select 2-space, 4-space, or minified JSON formatting

Pick your preferred JSON indentation style.

Plist to JSON Converter step 2: Select 2-space, 4-space, or minified JSON formatting
Step 2 workflow overview for Plist to JSON Converter.

Click Convert Plist to JSON and copy or download the .json file

Run the converter to inspect top-level key counts, parsed node statistics, and the resulting JSON.

Plist to JSON Converter step 3: Click Convert Plist to JSON and copy or download the .json file
Step 3 workflow overview for Plist to JSON Converter.

Worked Plist-to-JSON Conversion Examples

Common iOS, macOS, and cross-platform CI workflows.

Converting iOS/macOS Info.plist metadata for web or Node.js tooling

Transforms CFBundleIdentifier, CFBundleShortVersionString, MinimumOSVersion (16.0), and SupportedArchitectures into a clean JSON object.

Plist to JSON Converter example 1: Converting iOS/macOS Info.plist metadata for web or Node.js tooling
Worked example 1 for Plist to JSON Converter.

Auditing macOS launchd .plist daemons

Converts ProgramArguments arrays, RunAtLoad booleans, and EnvironmentVariables dictionaries into readable JSON.

Plist to JSON Converter example 2: Auditing macOS launchd .plist daemons
Worked example 2 for Plist to JSON Converter.

Normalizing <data> Base64 payloads

Strips line breaks and indentation inside <data> tags so Base64 strings decode cleanly in JSON consumers.

Plist to JSON Converter example 3: Normalizing <data> Base64 payloads
Worked example 3 for Plist to JSON Converter.

Using the Converted JSON Output

The generated JSON is 100% compliant with RFC 8259 and ready for `jq`, Node.js, or Python.

Numeric `<integer>` and `<real>` tags become native JSON numbers rather than quoted strings.

Boolean `<true/>` and `<false/>` tags become native JSON `true` and `false` literals.

How to interpret Plist to JSON Converter results
Result interpretation guide for Plist to JSON Converter.

XML vs. Binary Plist Scope

This tool parses XML-formatted Property Lists (`<?xml ...>` / `<plist>`).

If your file starts with the magic bytes `bplist00` (binary plist), convert it to XML first (`plutil -convert xml1`) or paste the XML representation.

Every `<key>` inside a `<dict>` must be followed by a valid value element.

Scope limits and assumptions for Plist to JSON Converter
Assumptions and input boundaries for Plist to JSON Converter.

Frequently Asked Questions About Plist to JSON Conversion

Answers about using Plist to JSON Converter and understanding its results.

How do Apple XML .plist types map to JSON data types?

In Apple's PropertyList-1.0 DTD, '<dict>' maps to a JSON object '{}', '<array>' maps to a JSON array '[]', '<string>' maps to a JSON string, '<integer>' and '<real>' map to JSON numbers, '<true/>' and '<false/>' map to JSON booleans, '<date>' maps to an ISO 8601 string, and '<data>' maps to a Base64-encoded string.

What is the macOS CLI command equivalent to this tool?

On macOS, 'plutil -convert json Info.plist -o Info.json' converts a Property List to JSON. This browser tool performs the same XML Plist-to-JSON conversion on Windows, Linux, or macOS without requiring Xcode command-line tools.

Why must every value inside a <dict> be preceded by a <key> tag?

Unlike standard XML where key names are tag names, Apple Plists alternate '<key>PropertyName</key>' and a typed value element ('<string>', '<integer>', '<dict>', etc.) as adjacent sibling nodes inside '<dict>'.

Are my Info.plist or launchd configuration files uploaded anywhere?

No. DOM parsing and JSON serialization run 100% locally in your browser.

Try your own values

Choose another tool for your next calculation, conversion, or text task.

Convert Plist to JSON