Processed in your browser

JSON / Plist Converter

Generates and parses XML Plist dict, array, string, integer, real, and boolean values. Date and data nodes return as strings, while external entities and dangerous keys are rejected.

Processed in your browser
0 / 1,000,000
Converted output

Tool guide

What is JSON / Plist Converter?

JSON and Plist Converter works with readable XML Property List configuration used by macOS, iOS, and Apple tooling. It supports dictionaries, arrays, strings, integers, reals, and booleans, rejects entity declarations and dangerous keys, and imports date or data nodes as explicit strings. Common workflows include the following. Generate readable XML Plist for an application example. Convert Plist configuration into JSON for comparison. Review dictionary, array, and boolean key/value structure. The page also documents input boundaries, output behavior, and practical cautions so you can review the result before putting it into an application, configuration, test, or production workflow.

When to use it

  • Generate readable XML Plist for an application example.
  • Convert Plist configuration into JSON for comparison.
  • Review dictionary, array, and boolean key/value structure.

How to use it

  1. Choose JSON or XML Plist direction.
  2. Check that values use supported plist types.
  3. Convert and resolve malformed key/value pairs.
  4. Validate important output in the target Apple environment.
  5. Load one of the realistic examples first to verify the selected options and processing direction before replacing it with your own data.
  6. Review the output, status message, and documented limits; copy, download, or continue only after the result matches your expectation.

Runnable examples

The “Example 1” and “Example 2” buttons load the matching inputs. They cover different structures, directions, or boundaries and can be run directly in the workspace.

Example 1

{"CFBundleName":"JSONLane","Enabled":true,"Ports":[80,443],"Theme":{"Primary":"#10243E"}}

Example 2

<?xml version="1.0" encoding="UTF-8"?>
<plist version="1.0">
  <dict>
    <key>CFBundleName</key><string>JSONLane</string>
    <key>Enabled</key><true/>
    <key>Ports</key><array><integer>80</integer><integer>443</integer></array>
  </dict>
</plist>

Input rules

  • Only XML Plist is accepted, not binary Plist.
  • The plist root must contain exactly one data value.
  • JSON null, entity declarations, and unsafe integers are rejected.
  • Text input is counted before processing and is limited to 1,000,000 characters on this page; file modes apply the separate file limit shown in the workspace.
  • Only XML Property List is supported, not binary Plist.

Output rules

  • Output uses XML Property List 1.0 structure.
  • Date and data values import as strings.
  • XML comments, source whitespace, and key layout are not retained.
  • Output reflects only the current input, direction, and options; rerun after changing a mode or value instead of treating an earlier result as current.
  • JSON null has no representation.

Limitations and cautions

  • Only XML Property List is supported, not binary Plist.
  • JSON null has no representation.
  • Date and data elements import as strings.

How your data is handled

All parsing, conversion, binary encoding, and intermediate data remain in the current browser tab. JSONLane does not upload the input or retain it after refresh or close.

FAQ

Is Plist content uploaded?

No. Parsing, conversion, and output generation remain in the current browser tab.

Is every round trip lossless?

No. Formats differ in types, comments, ordering, and binary capabilities; the page documents the important losses.

Why are some inputs rejected?

Unsafe integers, dangerous keys, excessive depth, and values with no clear target representation are rejected instead of silently rewritten.

Is binary Plist supported?

No. This tool focuses on readable XML Property List 1.0 documents.

Why does a date become a string?

Ordinary JSON has no date type. Keeping the source text avoids implicit timezone conversion.

Why is the standard DOCTYPE allowed?

The fixed Plist declaration is removed before parsing, while any ENTITY declaration remains rejected.

Updated: 2026-08-09