Local configuration utility

YAML to JSON Converter & Configuration Flattener

Convert Properties, YAML, and JSON into the deployment format your application or pipeline needs—with every structural and type change explained first.

Source deployment target

Local only

Conversion options

Target and value policy

Input setup

Default: preserve YAML/JSON keys; expand Properties paths. Choose expansion explicitly to nest dotted YAML/JSON keys.

Sensitive configuration stays in this browser

Configuration may contain passwords, tokens, private endpoints, and connection strings. Review generated output before copying it elsewhere.

Output setup

Deployment target
Value types
Generic value handling

Preserve keeps native types where possible. Strings explicitly converts numbers, booleans, and null to text.

port: 8081 → port: "8081"
Ready

No configuration data is stored.

Preserve types · Properties

Configuration input

Waiting
0 B / 1 MiB
Format detection starts locally as you type.Paste or drop one text file

Converted output

No output
PROPERTIES
0 B

Expanded view

Converted output

No outputPROPERTIES
0 B

Field guide

YAML to flattened JSON—and four other deliberate outputs

Turn nested YAML into the flat JSON keys many CI/CD pipelines expect, or convert Properties and JSON into structured YAML, dotenv, and POSIX shell output. Configuration formats often look interchangeable until a deployment fails, so the converter parses each supported source into one ordered, typed tree, applies explicit mapping rules, and explains what changed.

01

YAML → flattened JSON for CI/CD

service:
  endpoint: /v1
  retries: 3

Choose Flattened to emit service.endpoint and service.retries as parent-level JSON keys while preserving scalar types.

02

Properties → structured YAML

http.port=8081
database.ssl=true

Dot paths become nested YAML. Select Strings to keep both output values quoted instead of turning them into a number and boolean.

03

JSON → dotenv

{"database":{"port":5432}}

The target becomes DATABASE_PORT=5432; names are normalized and typed values become strings.

04

Properties → flat JSON

feature.enabled=true
service.code=00123

The dot-path keys remain flat and both values remain strings by default. With inference, only the exact boolean changes type; the leading-zero code remains text.

05

YAML array → shell

regions:
  - us-east-1
  - ap-south-1

Array order is retained as REGIONS_0 and REGIONS_1 with POSIX-safe quoted values.

FAQ

Configuration conversion questions

Does this converter upload my configuration?

No. Parsing, flattening, type handling, and output generation run in a same-origin Web Worker in your browser. The tool does not store configuration in cookies, Web Storage, IndexedDB, URLs, logs, analytics, or advertising systems. Initial page loading and offline-cache updates still request static application files from this site.

Can I use the converter offline?

Yes, after the first successful page load and the interface reports that the app is ready offline. Supported conversions then continue without a network connection. The first visit and future static application updates still require network access, and configuration values are never added to the offline cache.

Which input and output formats are supported?

The converter accepts strict JSON, core-schema YAML, and Java or Spring-style Properties. It outputs Properties, flattened or structured YAML, flattened or structured JSON, dotenv, and POSIX shell export statements. Dotenv and shell are output-only. Selecting the same source and target validates and normalizes that format. XML, PowerShell, and Windows CMD are not currently supported.

Will true, 00123, or dates change type?

Properties values remain strings by default. Optional inference, available only for Properties to JSON or YAML, recognizes exact true, false, null, and strict JSON numbers. Leading-zero identifiers, dates, empty strings, NaN, Infinity, padded values, and other text remain strings. Every inference is reported.

What is the difference between Flattened and Structured JSON or YAML?

Flattened output represents nested fields as parent-level dot paths and arrays with bracket indexes, such as services[0].name. Structured output retains nested objects and arrays. Literal dotted keys can coexist with nesting. Duplicate flat destinations are blocked. Input keys controls whether source keys are preserved or expanded; Properties expansion still rejects sparse arrays, prefix collisions, and invalid indexes.

Why does Auto-detect sometimes ask me to choose YAML or Properties?

A short line such as http.port: 8081 can be interpreted as either YAML or colon-separated Properties without more structural context. Auto-detect stops instead of guessing when both interpretations are valid. Mapping headers such as employee: keep a document on the YAML path, including when a syntax or indentation error must be corrected. Nested YAML and key=value Properties are normally detected automatically.

Can the same YAML child key appear under different parents?

Yes. employee.pageSize and businessStr.pageSize are different paths and may both exist. A duplicate is blocked only when the same decoded key appears more than once inside one mapping. Child keys must be indented beneath their parent because YAML uses indentation to define that scope.

How does value handling work?

Preserve keeps native JSON and YAML scalar types where the target supports them. Strings explicitly converts numbers, booleans, and null to text. Properties sources can optionally infer exact booleans, null, and strict numbers for JSON or YAML output.

What do Out of date, Review required, and Conversion Impact mean?

Out of date means the source changed after the last conversion; the previous output remains visible for reference, but Copy and Download stay disabled until you convert the revised source. Review required means conversion succeeded with a warning, such as flattened hierarchy, inferred or stringified types, or removed comments and formatting. Conversion Impact lists those findings and opens automatically for blocking errors.

Does a successful conversion guarantee deployment compatibility?

No. It proves that the selected syntax and mapping rules completed within the published limits. Your platform, CI/CD variable conventions, framework binding rules, secret-management policy, and application code may impose additional requirements. Review the output and impact report before deployment.

Technical conversion details

How the canonical tree prevents conversion sprawl

The tool does not maintain a different converter for every pair. JSON, YAML, and Properties are parsed into ordered mapping, sequence, and scalar nodes. Structured JSON and YAML retain that hierarchy; their flattened shapes, Properties, dotenv, and shell use dot paths and bracket indexes. This design gives all fifteen Phase 1 source-to-target combinations the same limits, collision checks, type policy, and deterministic ordering.

The document root must be a mapping. Top-level arrays and scalars are rejected because deployment configuration normally needs named fields. Objects preserve source key order, arrays preserve item order, and prototype-related names stay inert data rather than being merged into JavaScript objects used by application logic.

Flattening rules are intentionally strict

A nested key such as database.host becomes a dot path. An array item such as the first service name becomes services[0].name. Numeric dot segments are object keys, not inferred arrays. Sparse indexes, empty path segments, invalid brackets, and a scalar/container prefix collision are blocking errors because guessing could silently deploy the wrong value.

Nested and literal dotted keys can coexist. Flattening retains literal punctuation and blocks duplicate output keys, with a warning that the original key boundaries may not be recoverable. Input keys lets you preserve source keys or explicitly expand dotted YAML/JSON keys into mappings. Environment targets additionally normalize boundaries and camel case to uppercase underscores. If two source paths produce the same environment name, conversion stops and identifies the paths—not their values.

Types are preserved only where the target can carry them

Both shapes of JSON and YAML retain strings, numbers, booleans, and null; the shape choice changes only the key layout. Properties values are strings, so the default Properties-to-JSON or YAML conversion remains string-safe. Optional inference recognizes only exact lowercase booleans, exact null, and strict JSON numbers. Identifiers such as 00123, dates, empty values, padded values, NaN, and Infinity remain strings.

Properties, dotenv, and shell cannot preserve native types. Typed JSON or YAML values become strings, and null becomes the literal text null, each with a warning. Empty objects and arrays have no safe representation in flat targets; choose structured JSON or YAML to retain them. The round-trip assessment is conservative: a warning means you should not expect an equivalent typed tree without review.

Generic value handling

Preserve keeps numbers, booleans, null, and strings typed when the target supports them. Strings explicitly converts every scalar to text and reports any changed values before output.

Properties, dotenv, and shell are inherently string-oriented. JSON and YAML can retain native scalar types, so use the explicit value policy that matches the consuming application.

Local execution, limits, and safe review

Conversion runs in a cancellable same-origin Web Worker so large valid files do not freeze the interface. The worker enforces a 1 MiB input limit, 64 nesting levels, 50,000 canonical nodes, 25,000 flattened entries, and 5 MiB generated output. YAML accepts one core-schema document, rejects duplicate keys, custom tags, and merge keys, and bounds alias expansion.

No configuration is sent to an application server or stored in cookies, Web Storage, IndexedDB, URLs, logs, analytics, advertising, or the offline cache. Clear terminates the active worker and removes source, output, diagnostics, filename metadata, and download URLs. JavaScript strings are garbage-collected, so browser software cannot promise deterministic physical memory zeroization. Always inspect generated output and keep secrets in your approved secret-management system.

Privacy boundary

Your work stays on this device

Everything you give a tool—and everything it creates—remains inside your browser.

Your tool content does not go out.Files, pasted text, keys, configuration values, and results stay inside your browser.
Never uploaded by the toolsFilesPasted textPasswords and keysResults