Convert JSON to TOON and TOON back to JSON in your browser. Compare minified JSON and TOON by characters, UTF-8 bytes, and estimated tokens for your own data instead of relying on a fixed savings claim.
Convert JSON to TOON for token-sensitive LLM workflows, or convert supported TOON back to JSON for applications, APIs, and standard JSON tools.
See characters, UTF-8 bytes, and estimated tokens for minified JSON and TOON side by side, so the decision is based on your data rather than a fixed savings claim.
Uniform arrays of objects are emitted with the field names declared once in the header and one row per record, which is where TOON removes repeated syntax.
The page reports when TOON is larger than minified JSON, and flags deeply nested or non-uniform data that may not benefit from conversion.
JSON input is parsed with JSON.parse and TOON input is parsed with a TOON reader that checks declared array lengths and row widths, so malformed input is reported instead of silently accepted.
Use Swap Direction to feed the current output back as the input and run the reverse conversion, so you can check whether the data survives a round trip.
Download the converted TOON as a .txt file or the converted JSON as a .json file for prompts, test fixtures, pipelines, or applications.
Conversion, validation, and comparison happen in your browser. No account is required and the source data is not sent to a remote service.
Paste JSON for JSON-to-TOON conversion, or paste TOON for the reverse direction. Use data that represents the payload you actually plan to send.
Select JSON to TOON or TOON to JSON. Use Swap Direction to feed the output back in and run the reverse conversion.
The comparison always measures TOON against minified JSON, not against indented JSON, because indentation would exaggerate the difference.
Read the token-estimate notice, the warning when TOON is larger, and the structure hint that tells you whether a uniform object array was found.
Copy or download the representation you choose, then test it with the target model and prompt instructions before relying on it in production.
An array of records with the same fields is the structure TOON can represent most compactly.
{
"users": [
{ "id": 1, "name": "Alice", "role": "admin" },
{ "id": 2, "name": "Bob", "role": "editor" }
]
}An array where every element is an object with the same three primitive fields.
users[2]{id,name,role}:
1,Alice,admin
2,Bob,editorThe field names appear once in the header, followed by one row per record with the default comma delimiter.
The comparison panel shows the measured character, byte, and estimated token figures for this input. A deeply nested configuration object usually produces a much smaller difference.
TOON, or Token-Oriented Object Notation, is a compact representation of JSON-compatible structured data aimed at token-sensitive workflows such as LLM prompts, AI agents, and model tool calls. It uses a tabular representation for repeated object arrays while keeping a readable form for nested data.
TOON is not a universal replacement for JSON. JSON remains the standard format for APIs, browsers, databases, and general application interoperability. TOON is an optional representation to test when reducing LLM input size matters.
A repeated array of objects spells out the same field names many times in JSON:
{"users":[{"id":1,"name":"Alice","role":"admin"},{"id":2,"name":"Bob","role":"editor"}]}The tabular form declares the fields once and writes the values as rows:
users[2]{id,name,role}:
1,Alice,admin
2,Bob,editorThis is the main structural situation in which TOON removes repeated syntax.
Size depends on the shape of the data. Uniform arrays may benefit, while deeply nested objects, sparse records, mixed arrays, or configuration objects can produce little difference or increase the output. That is why this page reports the measured result and warns when TOON is larger, instead of repeating a fixed savings range.
Characters are what the editor shows, UTF-8 bytes are what is transmitted or stored, and tokens are what a model bills. A representation can be smaller in characters but not in tokens, because tokenizers split text in their own way. Compare the metric that matches your cost.
This page estimates tokens by dividing the character count by four and rounding up, using the same formula for both sides. That is a rough comparative heuristic, not a count from a specific model tokenizer. Real counts differ between models and tokenizers, so verify with your own tokenizer before making cost decisions.
The converter handles objects and nested objects, primitive arrays in inline form, uniform arrays of objects in tabular form, non-uniform and mixed arrays in list form, empty arrays and empty objects, root primitives, root objects and root arrays, and comma, tab, or pipe delimiters. It does not implement the keyed tabular root form, nested field groups, key folding, or path expansion.
The TOON reader checks that declared array lengths match the number of rows or items, so a document with a wrong count is reported rather than silently decoded. Use Swap Direction to feed the output back and check that your data survives a round trip, paying attention to strings that contain delimiters, colons, quotes, or leading and trailing spaces.
Conversion and comparison happen in the browser, so pasted payloads stay on your device. That suits prompts and development data, but it is not a secret-management system. Avoid entering credentials, private prompts, or confidential production payloads into any online tool.
For repeated pipelines, very large payloads, or confidential data, run the conversion in your own environment where you control logging, token counting, and data retention. The browser tool is best for inspection, one-off comparison, and deciding whether TOON is worth adopting for a given payload shape.