JSON to YAML Converter
Rewrite JSON as YAML that people can read, review and comment. Upload .json files and get indented .yaml with the same keys, values and order, ready to drop into a repository.
Data Converter
or drop CSV, TSV, TXT … files here ·
Max 95 MB per file· Up to 20 files· Deleted after 30 minutes
Files are processed on our servers and deleted after 30 minutes.
Character that separates columns in CSV and text files, for both reading and writing. Auto detects it from the input and writes commas.
UTF-8 works for every language. Choose UTF-8 with BOM if Excel on Windows shows garbled accents or Asian characters when opening the CSV.
Excel, ODS and Numbers input: convert the first sheet only, or every sheet (one CSV per sheet in a ZIP, or one JSON key per sheet).
Name of the sheet tab in the new spreadsheet, up to 31 characters.
Array of objects uses column names as keys for every row; array of arrays is more compact and keeps the header as the first array.
Name of the outer element that wraps all rows; each row becomes a <row> inside it.
Used in CREATE TABLE and INSERT statements. Letters, digits and underscores only.
Quoting and column types differ slightly between databases; pick the one you will import into.
Rewrite date cells in one format. ISO (2026-10-18) is safest for databases and code; keep leaves them as they appear in the source.
How to use this tool
- 1
Add the JSON files
Upload API responses, exported settings or generated manifests as .json, up to 20 files and 95 MB each. Each file must contain one valid JSON value.
- 2
Leave the defaults
YAML is already selected under Convert to. Nothing else needs changing for a config file; the output uses two-space indentation.
- 3
Convert and commit
Press Convert to YAML, download the .yaml files, add comments where the next reader will need them, and commit.
How do I convert JSON to YAML?
Upload the .json file and press Convert to YAML. Objects become indented key: value blocks, arrays become lists with dashes, and strings that YAML could misread keep their quotes.
Why convert JSON to YAML for config files
Most JSON is produced by software: an API response, a settings export, the output of a generator. Most YAML is maintained by people. The conversion usually marks the moment data stops being machine output and becomes something a team owns, such as a deployment manifest checked into Git, a CI pipeline, or a set of Ansible variables.
A typical case: you call a cloud API, get back a 200-line JSON description of a resource, and want to keep it as infrastructure code. Converting gives you a file without braces and commas, where a one-line change produces a one-line diff and you can explain odd values in comments. The same goes for test fixtures and translation files that non-developers edit. When a flat table is what you need instead, for a spreadsheet or a report, JSON to CSV is the better fit.
Tools whose config files are YAML
| Organisation | Requirement | Source |
|---|---|---|
| GitHub Actions | Workflows live in .github/workflows as .yml or .yaml files | GitHub Docs |
| GitLab CI/CD | The pipeline is defined in .gitlab-ci.yml at the repository root | GitLab Docs |
| Docker Compose | Services are described in compose.yaml (formerly docker-compose.yml) | Docker Docs |
| Ansible | Playbooks and variable files are written in YAML | Ansible Docs |
| Kubernetes | Manifests accept JSON or YAML; documentation and Helm charts use YAML | Kubernetes |
JSON to YAML example with tricky values
name: api version: "1.10" debug: false tags: - web - eu country: "NO"
What YAML gives you
- Comments with #
- Shorter diffs in code review
- No braces, commas or quotes on most lines
- Multi-line text with | block scalars
What to watch
- Indentation is meaning, so a stray space changes structure
- Tabs are not allowed for indentation
- Unquoted strings can be read as numbers or booleans
- Slower and less uniform parsers than JSON
The example shows why a plain find-and-replace of braces is not enough. The version 1.10 is a string in the JSON; written bare in YAML it would be read as the number 1.1. NO, the ISO code for Norway, would be read as false by YAML 1.1 parsers such as PyYAML. Both keep their quotes, while true numbers and booleans stay bare.
JSON and YAML compared
JSON
JavaScript Object Notation
JSON is a lightweight text format for structured data, popularised by Douglas Crockford in the early 2000s and standardised as RFC 8259 and ECMA-404. It represents objects, arrays, strings, numbers, booleans and null with simple, readable syntax. It is the default format for web APIs, configuration files and data exchange between apps in almost every programming language. It has no comments, dates or schemas built in, and large nested files are hard to read without a viewer.
- Compression
- –
- Transparency
- –
- Animation
- –
- Introduced
- 2001 · Douglas Crockford
YAML
YAML
YAML ("YAML Ain't Markup Language") is a human-friendly data format first released in 2001. It uses indentation instead of brackets, supports comments, and is a superset of JSON. It is widely used for configuration in Docker Compose, Kubernetes, GitHub Actions and many applications. Its reliance on whitespace makes it easy to break with a single misplaced space, and some values, such as "no" or dates, can be interpreted unexpectedly.
- Compression
- –
- Transparency
- –
- Animation
- –
- Introduced
- 2001 · Clark Evans, Ingy döt Net, Oren Ben-Kiki
People convert JSON to YAML when generated or API data has to become a config file that humans maintain, review in pull requests and annotate with comments.
JSON to YAML converter questions
Is JSON already valid YAML?
Under YAML 1.2, yes: the 2009 revision was written so that every JSON document is also a YAML document. You could paste JSON into a .yaml file and most tools would accept it. Converting is about readability: block style without braces, quotes and commas is what reviewers and the next maintainer expect.
Why are some values wrapped in quotes in the YAML?
Because without quotes YAML would read them as a different type. A version string like 1.10 would become the number 1.1, and yes or off could become booleans in older parsers. Strings that look like numbers, dates or booleans need quotes to stay strings, so a careful conversion keeps them.
Can I add comments after converting?
Yes, and that is a common reason to convert. Write # followed by your note at the end of a line or on its own line. JSON had no way to explain why a value is set; YAML does, which makes reviews and handovers easier.
Why does my YAML fail with a tab character error?
The YAML specification forbids tabs for indentation; only spaces count. The converter writes spaces, but an editor set to insert tabs can break the file on the next edit. Set your editor to use spaces for .yaml files.
Will Kubernetes accept the converted manifest?
kubectl reads both JSON and YAML, so the data is the same either way; the YAML version is simply what most documentation, Helm charts and code reviews use. If you later need JSON back for jq or an API call, YAML to JSON reverses it.
- YAML to JSON ConverterConvert .yaml and .yml files to JSON for APIs, validators and tools that only parse JSON. Pretty-printed by default, batches of 20, files deleted in 30 min.
- JSON to XML ConverterConvert JSON to XML online: keys become elements, arrays become repeated elements, all inside a root tag you name. Pretty-printed output, no account.
- Convert JSON to CSVConvert JSON or JSON Lines to CSV: one row per object, nested fields flattened into columns, UTF-8 with BOM so Excel shows accents correctly. 20 files at once.
- XML to JSON ConverterConvert XML to readable JSON: attributes become @ keys, repeated tags become arrays, text stays intact. For SOAP responses, feeds and legacy exports.
- JSON to Base64 EncoderEncode a JSON file as one line of Base64 for Kubernetes Secrets, CI variables, API payloads and tokens. Byte-for-byte reversible, optional data URI.
- JSON to Excel ConverterConvert JSON or JSON Lines into an Excel XLSX sheet: keys become column headers, each record becomes a row. Up to 20 files per batch, no account needed.