YAML → flattened JSON for CI/CD
service:
endpoint: /v1
retries: 3Choose Flattened to emit service.endpoint and service.retries as parent-level JSON keys while preserving scalar types.
Local configuration utility
Convert Properties, YAML, and JSON into the deployment format your application or pipeline needs—with every structural and type change explained first.
Field guide
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.
service:
endpoint: /v1
retries: 3Choose Flattened to emit service.endpoint and service.retries as parent-level JSON keys while preserving scalar types.
http.port=8081
database.ssl=trueDot paths become nested YAML. Select Strings to keep both output values quoted instead of turning them into a number and boolean.
{"database":{"port":5432}}The target becomes DATABASE_PORT=5432; names are normalized and typed values become strings.
feature.enabled=true
service.code=00123The 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.
regions:
- us-east-1
- ap-south-1Array order is retained as REGIONS_0 and REGIONS_1 with POSIX-safe quoted values.
FAQ
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.