Processed in your browser

YAML / Plist Converter

Supports dictionaries, arrays, strings, integers, reals, and booleans. It handles readable XML Plist only and rejects entities, dangerous keys, and null values with no Plist representation.

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

Tool guide

What is YAML / Plist Converter?

YAML and Plist Converter handles readable configuration used by macOS, iOS, and Apple tooling. It generates and parses XML Property List 1.0 dictionaries, arrays, strings, integers, reals, and booleans, rejects entity declarations and null, and keeps date or data nodes as explicit strings for later review. Common workflows include the following. Generate Apple XML Plist examples. Convert Plist into comparable YAML. Review dictionary and array 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 Apple XML Plist examples.
  • Convert Plist into comparable YAML.
  • Review dictionary and array structure.

How to use it

  1. Choose the YAML or XML Plist direction.
  2. Confirm that values use supported types.
  3. Load the example to inspect dictionaries and arrays.
  4. Convert and fix key/value alternation errors.
  5. Validate the result in the Apple target environment.
  6. Load one of the realistic examples first to verify the selected options and processing direction before replacing it with your own data.

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.
  • The Plist root must contain one value.
  • Null, ENTITY, 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 Plist is supported, not binary Plist.

Output rules

  • Output uses XML Property List 1.0.
  • Date and data import as strings.
  • XML comments and whitespace 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.
  • YAML null cannot be converted.

Limitations and cautions

  • Only XML Plist is supported, not binary Plist.
  • YAML null cannot be converted.
  • Plist date and data nodes import as strings.

How your data is handled

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

FAQ

Is YAML or Plist content uploaded?

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

Is every round trip lossless?

No. Comments, layout, type systems, and binary capabilities differ, so the page identifies the areas that require review.

Why can valid input still be rejected?

The destination may not have a safe representation. Dangerous keys, unsafe integers, excessive depth, and ambiguous mappings are rejected instead of silently rewritten.

Is binary Plist supported?

No. Only XML Property List 1.0 is handled.

Why does a date become a string?

Keeping text avoids inventing a date contract that may differ from the target environment.

Does the page load the Plist DTD?

No. The fixed declaration is removed and ENTITY declarations are rejected.

Updated: 2026-08-09