8 min read

TOON vs JSON vs YAML: Token and Format Comparison (2026)

TOON vs JSON vs YAML (plus XML, TOML, CSV): TOON uses about 43% fewer tokens than JSON at equal LLM accuracy. Comparison table and when to use each.

By json2toon.co

TOON vs JSON vs YAML, in short: JSON is the universal format for web APIs, YAML is the human-friendly format for config files, and TOON (Token-Oriented Object Notation) is a compact format built for LLM prompts. TOON uses about 43% fewer tokens than JSON on average (42.6% in the official TOON v4.1 benchmark) with effectively the same retrieval accuracy (72.2% vs 71.4%), because it writes the field names of an array once in a header instead of repeating them on every row.

In software engineering, we often treat data serialization formats as a matter of taste. Python developers like YAML. Rust developers like TOML. Web developers like JSON. But in the era of Generative AI, format choice is no longer just about preference—it is about Mathematics.

Every bracket, every quote, and every trailing comma consumes a token. When you are paying $10/million tokens, or trying to fit a 200,000-word codebase into a context window, "Verbose" means "Expensive" and "Inefficient."

This guide provides a definitive, unbiased comparison of the six major data formats: JSON, YAML, XML, TOML, CSV, and TOON.

TOON vs JSON vs YAML at a Glance

JSONYAMLTOON
StructureBraces, brackets, quoted keysIndentation, unquoted keysIndentation plus table headers for arrays
Keys in arrays of objectsRepeated on every itemRepeated on every itemDeclared once, e.g. users[2]{id,name}:
Token cost (official v4.1 benchmark)Baseline3,487 tokens per prompt on average2,474 tokens on average; 42.6% fewer than JSON, about 29% fewer than YAML
LLM retrieval accuracy71.4%70.1%72.2% (effectively tied)
Best forAPIs, browsers, storageHand-written config (Kubernetes, CI)Data you put into LLM prompts and RAG context
Where it saves least--Deeply nested or irregular data

TOON vs JSON: same data model (objects, arrays, strings, numbers, booleans, null), so conversion is lossless in both directions; TOON simply drops the braces, quotes and repeated keys. Try it with the JSON to TOON converter or read the full JSON vs TOON comparison.

TOON vs YAML: both use indentation, but YAML still repeats keys for every list item and has implicit typing quirks. TOON turns uniform lists into tables. Convert a file with the YAML to TOON converter, see YAML vs TOON, or measure your own payload in the TOON token calculator.

The Decision Matrix

FormatPrimary Use CaseVerbosityType SafetyLLM Suitability
JSONWeb APIs (REST)MediumStringly TypedB
YAMLDevOps / ConfigLowDynamicB-
XMLEnterprise / SOAPVery HighStrong (XSD)F
TOMLApp ConfigurationMediumStrictC
CSVSpreadsheets / Flat DataVery LowNone
LLM Context / RAGLowestImplicitA+

Deep Dive: The Formats

1. JSON (JavaScript Object Notation)

The King of the Web. JSON won the API wars because it map 1:1 to JavaScript objects. It is simple, predictable, and supported by every language on Earth.

The LLM Problem: JSON is repetitive.

[
  {"id": 1, "name": "Alice"},
  {"id": 2, "name": "Bob"}
]

The strings "id" and "name" are repeated for every single row. For a list of 1,000 users, you pay for those keys 1,000 times. That is wasted money.

2. YAML (YAML Ain't Markup Language)

The King of Config. YAML is beautiful to read. It uses indentation (like Python) instead of brackets.

- id: 1
  name: Alice
- id: 2
  name: Bob

The LLM Problem: While cleaner than JSON, it still repeats the keys (`id`, `name`) for every item. Also, YAML specification is famously complex (the "Norway Problem" where `NO` is parsed as `false` for boolean No). This ambiguity confuses smaller LLMs.

3. XML (eXtensible Markup Language)

The King of Enterprise. XML is rigorous. It supports schemas, attributes, namespaces, and validation.

<user>
  <id>1</id>
  <name>Alice</name>
</user>

The LLM Problem: Closing tags. Writing </name> conveys zero new information but costs tokens. XML is usually 2-3x larger than JSON. Use it only if you are forced to.

4. TOML (Tom's Obvious, Minimal Language)

The King of Rust/Python. TOML is designed to be mapped to a Hash Table. It is great for setting files (`Cargo.toml`, `pyproject.toml`).

[[user]]
id = 1
name = "Alice"

[[user]]
id = 2
name = "Bob"

The LLM Problem: The "Array of Tables" syntax (`[[user]]`) is incredibly verbose if you have a list of small objects. It repeats the header for every item. If your data starts in TOML, the TOML to TOON converter turns those tables into a single header plus rows.

5. CSV (Comma-Separated Values)

The King of Data. CSV is brutally efficient.

id,name
1,Alice
2,Bob

The LLM Problem: No structure. You can't nest an address inside a user. You can't have a list of roles. It is purely 2D. Great for dataframes, bad for trees.

6. TOON (Token-Oriented Object Notation)

The Native Format for AI. TOON was released as an open, MIT-licensed spec in late 2025 to solve exactly these problems.

  • It uses Indentation (like YAML) to avoid brackets.
  • It uses Headers (like CSV) to avoid repeated keys.
  • It supports Nesting (like JSON) to represent complex data.
users[2]{id,name}:
  1,Alice
  2,Bob

It is as compact as CSV, but as flexible as JSON. Paste your own data into the JSON to TOON converter to see the output.

Cost Comparison: The Million Request Scenario

Let's assume you are building a RAG application. You fetch 50 products from your database and send them to GPT-4o for ranking.

Payload: 50 products, 10 fields each.

JSON

2,500

Tokens per request

$25 / million reqs

YAML

2,100

Tokens per request

$21 / million reqs

1,200

Tokens per request

$12 / million reqs

Result: Switching to TOON saves 52% on your API bill instantly.

These figures are an illustrative scenario for a flat product table. Across mixed datasets the official benchmark average is 42.6% fewer tokens than JSON, so check your real payload in the TOON token calculator.

Conclusion: Choose the Right Tool

Format wars are over. The answer is "It depends."

  • For Humans: Use YAML. It is easy to write.
  • For Browsers: Use JSON. It is native.
  • For LLMs: Use TOON. It is efficient.

The modern AI stack is hybrid. You store data in a database (SQL), you configure your app in YAML, your frontend speaks JSON, and your backend converts that JSON to TOON before talking to OpenAI.

Recommended Reading

ComparisonData FormatsTOONJSONYAMLXMLTOMLCSV