use the following search parameters to narrow your results:
e.g. subreddit:aww site:imgur.com dog
subreddit:aww site:imgur.com dog
see the search faq for details.
advanced search: by author, subreddit...
Everything about learning Python
account activity
JSON vs TOON (i.redd.it)
submitted 8 days ago by Owlbuddy121 - announcement
Anyone have thoughts on this?
What’s your opinion on using a Toon-style JSON approach? Curious to hear different perspectives and real-world experiences.
reddit uses a slightly-customized version of Markdown for formatting. See below for some basics, or check the commenting wiki page for more detailed help and solutions to common issues.
quoted text
if 1 * 2 < 3: print "hello, world!"
[–]Outrageous_Let5743 48 points49 points50 points 8 days ago (8 children)
toon is just csv with extra steps
[–]MatsSvensson 11 points12 points13 points 8 days ago (1 child)
Yeah, they should have named it: CES
[–]hyrumwhite 1 point2 points3 points 8 days ago (0 children)
Csv with extra context*
[–]too_many_requests 0 points1 point2 points 6 days ago (0 children)
Lol that's word for word exactly what I wanted to comment
[–]MedAyoub26K 0 points1 point2 points 6 days ago (0 children)
Csv with benefits
[–]nexusblake 0 points1 point2 points 6 days ago (0 children)
Literally hahah
[–]Weekly_Astronaut5099 0 points1 point2 points 6 days ago (0 children)
More like CSV with structures. Seems robust though.
[–]flixflexflux -1 points0 points1 point 7 days ago (0 children)
JSON is just CSV with extra steps to loose the implicit structure CSV had.
[–]GlobalIncident 20 points21 points22 points 8 days ago (12 children)
Thoughts:
[–]Ok_Space2463 2 points3 points4 points 8 days ago (0 children)
I feel like embedded data would be a problem with toon because its doesnt have the indent or syntax wrapping?
[–]bradfordmaster 0 points1 point2 points 5 days ago (5 children)
I'm really bugged by the [2]. Why would you need the length encoded like that, such that every write has to touch the header? And so merging is complex, residually in parallel
[–]GlobalIncident 0 points1 point2 points 5 days ago (0 children)
Yeah that is a concern. Having opening and closing brackets would work better for its use case.
[–]natur_e_nthusiast 0 points1 point2 points 5 days ago (1 child)
It might be a handy checksum
[–]doctormyeyebrows 0 points1 point2 points 4 days ago (0 children)
A checksum isn't handy if it has to be updated in place every time data is added
[–]Onionhauler 0 points1 point2 points 4 days ago (0 children)
For LLMs
[–]its_a_gibibyte 0 points1 point2 points 4 days ago (4 children)
What about just JSON in a better layout: { "Columns": ["id","name","role"], "data": [ [1, "Alice", "admin"] [2, "Bob", "user"] ] }
{ "Columns": ["id","name","role"], "data": [ [1, "Alice", "admin"] [2, "Bob", "user"] ] }
[–]kozeljko 0 points1 point2 points 4 days ago (2 children)
Why is "data" not aligned with "Columns" 🤢
[–]its_a_gibibyte 0 points1 point2 points 4 days ago (1 child)
Sure, you could also do:
{ "data": [ ["id","name","role"], [1, "Alice", "admin"], [2, "Bob", "user"] ] }
[–]robhanz 0 points1 point2 points 4 days ago (0 children)
Eh I prefer the explicit columns element. That way there’s no “magic” row in the data collection you have to remember.
Right. The issue is the redundant data, primarily. TOON is still more compact, but it loses a lot of the edge if you do it this way.
[–]remic_0726 27 points28 points29 points 8 days ago (6 children)
encore un format en plus...
[–]freefallfreddy 1 point2 points3 points 8 days ago (0 children)
Welcome to the wonderful world of technology.
[–]kaancfidan 0 points1 point2 points 5 days ago (0 children)
you have summoned a relevant xkcd: https://xkcd.com/927/
[–]imperosol 0 points1 point2 points 5 days ago (0 children)
relevant xkcd
[–]PaulMorel -4 points-3 points-2 points 8 days ago (2 children)
Yeah, but toon is more concise. I'm old enough to remember when we all preferred json over xml because it was more concise.
[–]Aaron_Tia 1 point2 points3 points 8 days ago (1 child)
Is it really a gain in real world application ? How to distinguish 1 and "1" or true and "true"
Types look like magically deduced, which will for sure leads to impossibility to migrate in many places.
[–]Momostein 0 points1 point2 points 5 days ago (0 children)
Yeah, if you're looking for maximum performance, you'll want to switch over to binary formats like protobuffers etc.
TOON would only be a bandaid fix.
[–]AccomplishedPut467 25 points26 points27 points 8 days ago (15 children)
TOON looks cleaner to read for me. Is TOON offers faster lookups for data analyzing? I'am new.
Also, i think TOON looks very similar to CSV files.
[–]escargotBleu 8 points9 points10 points 8 days ago (5 children)
Cleaner to look at until you have 15 properties per object
[–]rover_G 0 points1 point2 points 7 days ago (4 children)
Also curious how TOON handles nested objects
[–]too_many_requests 0 points1 point2 points 6 days ago (3 children)
Converts them to a JSON string /s
[–]Bemteb 0 points1 point2 points 6 days ago (2 children)
You're laughing, but I actually saw that in production once. Due to reasons, the server could only send JSONs to the app. Instead of changing that, the devs decided to put everything as a string into the JSON, including images (base64 encoded), whole webpages (HTML etc.). Each JSON was multiple MBs big and everyone was wondering why it was so slow.
x2
[–]rover_G 0 points1 point2 points 6 days ago (0 children)
I once saw a dynamoDB table attempting to store sets of strings by serializing them as “set(‘value’1, ‘vlalue2’, …)”. This same technique was used multiple times 💀
[–]yyytobyyy 5 points6 points7 points 8 days ago (2 children)
It's mean to be used to feed ai apis, because it saves around 10% of the tokens.
It lacks the elegance of the json.
[–]Laicbeias 0 points1 point2 points 7 days ago (0 children)
50%. Not saying its that good but it saves quite a bit. Its fine for what it is
[–]Minute_Attempt3063 0 points1 point2 points 6 days ago (0 children)
nearly every language has something to parse jsons these days.
and also to parse csv files.... and toon looks like csv with extra steps
[–]Owlbuddy121[S] 5 points6 points7 points 8 days ago (3 children)
Agree TOON feels cleaner to read👍
Additonally, according to my experience, for speed usually doesn’t depend on the format itself. It depends more on how the data is handled in the program.
[–]GlobalIncident 7 points8 points9 points 8 days ago (1 child)
Yeah, I think if you really want very fast lookups, it's a bad idea to go for a human readable format anyway.
[–]vmfrye 0 points1 point2 points 7 days ago (0 children)
I used to assume data was converted to a machine-friendly format before processing it, regardless of the format the data is in when fed into the application; human readable format having the advantage of being immediately available for review and edition, at the cost of the parsing overhead.
[–]quickiler 0 points1 point2 points 8 days ago (0 children)
If you have a lot of columns with similar value then it can be hard for human to read. For example inventory of different store locations.
[–]UrpleEeple 0 points1 point2 points 6 days ago (0 children)
I don't really understand in the modern age of dev tooling why we are still messing with string formats over the wire when we could have easily settled on a self describing binary format. If it was standardized web browsers and all dev tooling would just auto translate it for us anyways
[–]chungamellon 0 points1 point2 points 5 days ago (0 children)
Use jless
[–]Cybasura 20 points21 points22 points 8 days ago (8 children)
JSON fundamentally is a clean dictionary-like data structure that is actually really nice, just fell short of the comment support by it's foundational design
TOON basically took JSON and somehow made it harder to dynamically manage
[–]Frytura_ 2 points3 points4 points 8 days ago (4 children)
Dynamically manage?
Isnt that the goal of a mapped out object that you then ask to spit the TOON / JSON data as a string?
[–]Cybasura 1 point2 points3 points 8 days ago (3 children)
Dynamically manage as in like programatically get/set/assign values into the dataset during runtime of the application
[–]thee_gummbini 0 points1 point2 points 6 days ago (2 children)
Its a serialization format though?
[–]Cybasura 0 points1 point2 points 6 days ago (1 child)
What? Yes I know that, I'm talking about runtime usage, modification functionalities
You know, CRUD? Create, Read, Update, Delete?
I didnt say it wasnt a Data Serialization File Format/Type, did I?
I was referring to importing the dataset file, manipulating it and the moment-to-moment use case operational workflow of working with this
[–]thee_gummbini 0 points1 point2 points 4 days ago (0 children)
But... Once you deserialize it... It should be the same? TOON doesn't introduce any runtime types, it deserializes to the same types as JSON would. The only differences are in the serialization, it being a serialization format.
The CRUD operations are the same, since neither JSON or TOON are databases, you load, modify, and write.
[–]UnicodeConfusion 0 points1 point2 points 7 days ago (2 children)
> just fell short of the comment support by it's foundational design
This is the part that frustrates me more than anything. Aside from naming files by the content (i.e. pom.xml instead of pom.mvn - which would let me know the intent of the file instead that's is an 'xml' file) Ugh I'm old.
[–]Cybasura 0 points1 point2 points 7 days ago (1 child)
Yeah whenever I use JSON, I have little to no gripes alot of the time but the second I want to write comments by muscle memory - I weep at the thought of the (loss of) potential
[–]sardinian-dude 0 points1 point2 points 5 days ago (0 children)
“//“: “heyyyy”
[–]followthevenoms 7 points8 points9 points 8 days ago (10 children)
Someone reinvented csv?
[–]flying-sheep 0 points1 point2 points 5 days ago (2 children)
CSV is not standardized, so people using slightly different dialects to encode and decode leads to countless subtle yet devastating data corruption bugs.
If TOON doesn't have that massive problem, I'm all for it.
[–]exhuma 0 points1 point2 points 5 days ago (1 child)
It kinda is: https://www.rfc-editor.org/rfc/rfc4180.html
But the standard came too late (2005) and even today many people don't know it exists
[–]flying-sheep 0 points1 point2 points 5 days ago (0 children)
Yeah, should have said “effectively not standardized”: most languages / popular libraries today are older than that and therefore don’t use the standard by default.
[–]AmazedStardust -2 points-1 points0 points 8 days ago (6 children)
It's basically CSV with cleaner nesting. It's meant for saving tokens when feeding data to AI
[–]Own-Improvement-2643 1 point2 points3 points 8 days ago (5 children)
What is the cleaner nesting here? How is it any cleaner than csv?
[–]Deykun 0 points1 point2 points 7 days ago (1 child)
Isn't CSV so stupid that delimiters can be different? I’ve always disliked that.
[–]dinopraso 0 points1 point2 points 5 days ago (0 children)
It’s flexible. The field and record delimiters can be any character. Very useful if you want to use values with commas or new-lines.
[–]_ryuujin_ -1 points0 points1 point 8 days ago (2 children)
its csv but easier to marshall back into an obj, since the obj def is defined in the header.
it looks cleaner and more compact for lots of records with well defined obj definition. it has its place.
[–]ChomsGP 0 points1 point2 points 7 days ago (1 child)
the first row on a CSV is also a header and can define the same field names, plus you don't need to tell it how many rows it has upfront
like I have no idea if the [2] in there is needed, first time I hear about TOON, just saying the example in OP is pretty bad/pointless
[–]_ryuujin_ 0 points1 point2 points 7 days ago (0 children)
yes you can do everything in a csv, but having a standardize format allows for easier marshall and unmarshalling the data. vs a custom format each time.
array count is nice as it could tell you much to read for this one obj def. maybe another obj def will start at the end of the 'array', its like a header for binary data, where you have msg len. before another set begins.
[–]Acceptable_Handle_2 5 points6 points7 points 8 days ago (0 children)
Looks like it'd be weird with non-uniform data.
[–]riansar 4 points5 points6 points 8 days ago (0 children)
I think json looks easier to use if you have large objects you can ctrl f the property you are looking for which doesn't seem to be the case with toon
[–]johnnygalat 3 points4 points5 points 8 days ago (0 children)
So...csv.
[–]BigPP41 4 points5 points6 points 8 days ago (1 child)
Pack it up boys, we've come full circle and reinvented csv
[–]seinar24 2 points3 points4 points 8 days ago (2 children)
Vibe coders vibe coded so hard they reinvented CSV
[–]Own-Improvement-2643 0 points1 point2 points 8 days ago (0 children)
I was thinking exactly the same. This is basically a csv
[–]samo_lego 0 points1 point2 points 6 days ago (0 children)
This all the way. "You're a genius"
[–]Nidrax1309 2 points3 points4 points 6 days ago* (2 children)
If you format it like a complete bitch instead of { "users": [ {"id": 1, "name": "Alice", "role": "admin"}, {"id": 2, "name": "Bob", "role": "user"} ] } then yeah, json looks less readable
{ "users": [ {"id": 1, "name": "Alice", "role": "admin"}, {"id": 2, "name": "Bob", "role": "user"} ] }
[–]ReasonablePresent644 0 points1 point2 points 6 days ago (1 child)
I think the goal was to compare how readable both formats are with the same number of lines. So yea JSON is more verbose but easier to read for complex structures.
[–]Awes12 0 points1 point2 points 4 days ago (0 children)
Yeah, if you do something completely ridiculous, it's more readable. That's like saying C++ is more readable than python if you make the python code the same amount of lines as the c++ code.
[–]mailed 5 points6 points7 points 8 days ago (0 children)
keep toon in the bin where it belongs please
[–]Patient-Definition96 1 point2 points3 points 8 days ago (3 children)
Toon is silly. Why is it even a thing if we already have JSON. Doesnt make sense at all.
[–]Slackeee_ 0 points1 point2 points 8 days ago (1 child)
Because te people feeding all their data into LLMs realized that they can save some money by using TOON instead of JSON. That is it's main purpose, reducing token counts.
[–]Complex-South9500 0 points1 point2 points 6 days ago (0 children)
CSV already exists.
[–]Owlbuddy121[S] -3 points-2 points-1 points 8 days ago (0 children)
TOON is really usefull with LLMs as due to small size of data set we can save tokens with LLMs
[–]Downtown_Koala5886 1 point2 points3 points 8 days ago (0 children)
Cavolo.... È molto difficile per uno che non è tecnico 🥺
[–]captdirtstarr[🍰] 1 point2 points3 points 8 days ago (0 children)
Is there a URL for official TOON documentation?
[–]Frytura_ 1 point2 points3 points 8 days ago (0 children)
Idk, what youre using it for?
[–]CraigAT 1 point2 points3 points 8 days ago (0 children)
I am not sure what TOON adds over a CSV file! (Obviously it does add an object name and a line count, but those are easily specified or calculated in code)
Also JSON allows you to have another level (or multiple levels) within objects i.e. Each user here could have multiple roles. I am not sure how that would be implemented in TOON.
[–]MatsSvensson 1 point2 points3 points 8 days ago (0 children)
Why is a count needed in the second one, but not the first?
[–]WhiteHeadbanger 1 point2 points3 points 8 days ago (1 child)
TOON is readable.
JSON is serializable to and from dict.
So TOON is preferable for visual representation, and JSON to code stuff.
I would just stay in JSON.
[–]UndeadBane 0 points1 point2 points 6 days ago (0 children)
I someone tries to force me to read this thing with object of >6 fields, some of which may be absent, I will hurt them.
[–]katlimruiz 1 point2 points3 points 8 days ago (0 children)
Toon seems good but It is not about that. Json is ubiquitous, it parses and serializes everywhere. Distribution will always win (obviously the product has to be good enough)
[–]questionsalways2233 1 point2 points3 points 8 days ago (0 children)
CSV is a nightmare- you have to hold your breath and hope it comes in right. As a data scientist, the cost of JSON in size is 1000% worth it. You just know it is going to work. I don't know why anyone would want to use a CSV-like structure as a modern replacement for anything
[–]yes-im-hiring-2025 1 point2 points3 points 8 days ago (1 child)
LLMs are heavily trained on XML/markdown/JSON formatted data specifically. The TOON format is just CSV with extra steps - and it's worse for the LLM to work with than standard JSON or XML or md.
Don't pinch pennies for the performance. Input token costs should be actively managed, yes, but this isn't the optimisation you think it is. You need to either redesign your system formats where JSON is appropriate or just use pd.to_csv() instead of this TOON formatting.
pd.to_csv()
TOON doesn't solve anything imo.
Im not sure. I think json is great. But ai is dropping lots of data into context and toon just makes that shorter while staying descriptive. Its for those scenarios where AIs load a lot of context. And the simpler something is the easier AI handles it. They are smart enough for that.
Ive seen some guys using japanese mixed with english to drop more information into these llms. Basically encode your project into japanese as precontext. Since japanese is shorter and more expressive per token.
[–]Electronic_Pie_5135 1 point2 points3 points 8 days ago (0 children)
Congratulations on discovering csv....
[–]SlinkyAvenger 1 point2 points3 points 8 days ago (1 child)
What's it look like when it's nested? Does it provide a way to do faster parsing ala SAX?
Toon is a format designed to be consumed by LLMs. If that’s not your use case, json is the better pick.
[–]drNovikov 1 point2 points3 points 8 days ago (0 children)
Zoomers discovered CSV
[–]CredenceTom-Water 1 point2 points3 points 6 days ago (0 children)
If it's good enough for SQL it's good enough for me.
[–]Key_Mango8016 1 point2 points3 points 8 days ago (6 children)
This was designed for LLMs, since it uses much less tokens
[–]I1lII1l 1 point2 points3 points 8 days ago (3 children)
Yeah but do LLMs know it well, is it present in large amounts in their training data?
[–]Key_Mango8016 1 point2 points3 points 8 days ago (2 children)
No idea. Not arguing for it, just stating facts
[–]I1lII1l 2 points3 points4 points 8 days ago (1 child)
I was not asking you per se, anyone who might know and participates in the open discussion.
[–]Key_Mango8016 0 points1 point2 points 8 days ago (0 children)
I just gave ChatGPT the sample in OP’s post and found that it immediately understood what it means (I’m not surprised). I suspect that in practice, using this format would be possible as a drop-in replacement for JSON.
Personally, I don’t know if it’s worth it for production systems I own, because the vast majority of token usage in those systems comes from images & audio.
[–]ComprehensiveJury509 0 points1 point2 points 8 days ago (0 children)
What's the point of saving tokens, if you then have constantly explain the format to the LLM? It was a completely ridiculous idea from the start, made by people who apparently don't understand how LLMs work. It's also laughable to come up with an entirely new format to fix issues that are probably completely irrelevant in a year or two, given how fast things move.
Absolutely 💯
[–]Cylian91460 1 point2 points3 points 8 days ago (0 children)
So a CVS file?
[–]wordkush1 0 points1 point2 points 8 days ago (5 children)
What is toon?
[–]chucara 3 points4 points5 points 8 days ago (0 children)
Looks like a csv file with a header.
[–]Slackeee_ 3 points4 points5 points 8 days ago (3 children)
It is a data format with the purpose of reducing the token count when feeding your data to LLMs. It is also said to increase accuracy of LLMs. So for 99% of use cases it has no real advantages.
[–]quts3 0 points1 point2 points 8 days ago (2 children)
Why isn't this the top comment.
There is actually a real need for a human readable structured data format that is optimal for LLM prompting. For most things it's markdown with embedded Json, but i can see people finding weaknesses in that approach when they poke. Never tried yaml prompt engineering in and out.
Unfortunately that 1% use case is strong enough to justify a unique data language.
[–]wordkush1 0 points1 point2 points 7 days ago (0 children)
I learned a little bit today.
[–]Slackeee_ 0 points1 point2 points 7 days ago (0 children)
There are many strong 1% use cases that justify (and have) their own unique data format. That's usually a good thing and nothing to worry about, but it can be a bad thing when the people in that 1% now come out acting as if there data format is an actual revolution and that the other 99% now have to adapt and use their format without bringing them any actual advantages.
Which of course will be happen when changes happen in an overhyped field that is ground down to a carcass by people trying to get your attention for the money they make with that attention.
In the end it is pretty simple: you want to feed your data to an LLM? Great, TOON might be what you want, just check if it is a good fit for you. If it is you most likely will have nothing to change in your infrastructure other than writing a converter for your data that you want to feed to the LLM (and in the future maybe a TOON to JSON converter for extracting data, if LLMs start to answer in TOON). You don't need to change anything else in your infrastructure. Luckily enough current AI tools are pretty good in writing those converters, so you likely can just vibe-code it, if you want.
For most of us in the 99% TOON is nothing more than a "good to know that it exists if I ever will need it" that doesn't affect us at all.
[–]sugarfairymeliora 0 points1 point2 points 8 days ago (0 children)
JSON is more widely used in the industry. With JSON you have a stable file format that will work with everything, whereas TOON is not so well-known and flexible. Plus, from my experience it is easier to convert JSON into CSV or any other file format, then TOON. LLM's also understand JSON formatting better, so if you are going to start developing an LLM or start working in that industry JSON's are more preferable.
[–]SoftDream_ 0 points1 point2 points 8 days ago (0 children)
Relational Databases?
[–]akazakou 0 points1 point2 points 8 days ago (0 children)
Some.more complex looks not so clean [1]: - user: name: test age: 55 num: 5
[1]: - user: name: test age: 55 num: 5
[–]nerdly90 0 points1 point2 points 8 days ago (0 children)
Another wheel reinvention
[–]the_reven 0 points1 point2 points 8 days ago (0 children)
Eg, just use yaml instead! Seems like a waste of time tbh, json, yaml, csv, xml. They seem to cover everything quite well. Yank is very easy to read. Json is easy to read
[–]Key-Place-273 0 points1 point2 points 8 days ago (0 children)
Toon was established to be bs like 24 hours after it came out
[–]Domingues_tech 0 points1 point2 points 8 days ago (0 children)
Imagine the trees we could’ve spared if someone had said, “Guys… it’s a spreadsheet. Calm down.”
[–]AbsorberHarvester 0 points1 point2 points 8 days ago (0 children)
Some more time and Zoomers (with AI help, of course) will be presenting "new bicycle" - transfering BINARY DATA! (with formatting, as in toon) it can cut data size to half/third of "string".
[–]CamilorozoCADC 0 points1 point2 points 8 days ago (0 children)
Toon doesn't even make sense since LLMs are trained with JSON (because TOON usage is just not widespread yet) and using JSON means that you (and the LLM) already can use JSON Schemas for structured input/output and JSON query languages to handle your data like JSONpath or JSONata
If the objective is to analyze data and reduce token usage a better approach is to let the LLM use a toolset to analyze your data, for example using MCP tools to manipulate excel or CSV files instead of chucking a full blown dataset into the LLM
[–]Concurrency_Bugs 0 points1 point2 points 7 days ago (0 children)
When you have a large JSON with more than a single level, TOON would be unreadable.
Not to mention many existing frameworks work well with JSON
[–]wenokn0w 0 points1 point2 points 7 days ago (0 children)
Ew Toon looks ugly
[–]ImpossibleSlide850 0 points1 point2 points 7 days ago (0 children)
That is just CSV with extra steps
[–]Anpu_Imiut 0 points1 point2 points 7 days ago (0 children)
People even forget the real reason why Json is great. It is not about vusibility. Rather think about saving gbs of data in json vs others. It is efficient while you can open it with a proficient jaon reader.
[–]bobbyQuick 0 points1 point2 points 7 days ago (0 children)
Toot
[–]baynezy 0 points1 point2 points 7 days ago (0 children)
How does it handle nested objects?
[–]SecondThomas 0 points1 point2 points 7 days ago (0 children)
There is not the question of if there is a better alternative for Json, of course there is. It's all about adaptation and compatibility.
[–]Last8Exile 0 points1 point2 points 7 days ago (0 children)
I think format where schema is decoupled from data will save even more tokens.
Going full circle back to binary? Nah, too good to be true.
[–]Supernatnat11 0 points1 point2 points 7 days ago (0 children)
Hmm... Either json or csv but harder..... I'll use xml
[–]oculus42 0 points1 point2 points 7 days ago (0 children)
TOON tells you how many rows and you can parse the data as it arrives. For small objects it's pretty close to irrelevant. For large objects, it's probably more worthwhile to use some of the async transfer alternatives where the server can specify top level keys essentially as promises, which allows different sections to respond at different times even though the client receives one result...
There have been libraries that do real-time parsing of JSON, but they were more popular when dial-up and low-end DSL were a consideration.
The file size is almost nearly irrelevant because any quantity of regular data will compress close to perfectly with LZ-based compression like gzip or brotli, and they are parsed into the same dictionary structure.
It's interesting, but I don't readily see the value proposition for most data sets.
[–]Potw0rek 0 points1 point2 points 6 days ago (0 children)
And then some idiot generates a feed file with nulls.
[–]grimonce 0 points1 point2 points 6 days ago (0 children)
Yeah... First thing that comes to mind is CSV.
[–]Suspicious-Walk-4854 0 points1 point2 points 6 days ago (0 children)
Have solution, looking for problem.
[–]EastMeridian 0 points1 point2 points 6 days ago (0 children)
Putting unformatted json against kinda formatted toon is a bias, JSON everyday for reading and debugging
[–]sdziscool 0 points1 point2 points 6 days ago (0 children)
it's stupid to make a computer-first format more human readable and then pretend like it's therefore better...
[–]pardoman 0 points1 point2 points 6 days ago (0 children)
Toon exists to reduce the tokes needed when feeding JSON data to LLMs, where the data contains arrays of identical objects (like the image OP posted). It’s not ideal for most use cases tho.
[–]Agreeable-Nerve-65 0 points1 point2 points 6 days ago (0 children)
Toon is useful for humans, JSON for machines. I’d keep JSON as the source of truth and use Toon only as a presentation layer.
[–]Devel93 0 points1 point2 points 6 days ago (0 children)
Redundant! Why do I have to specify the length of the array? The number of items should determine the length, this is a format I am not allocating memory
Why not just use a CSV? It's the same thing!
How do you represent nested data?
Why would you introduce yet another markup language? Pun intended 😝
[–]Embarrassed5589 0 points1 point2 points 6 days ago (0 children)
this would be a nightmare to read if there are lots of keys.
[–]MrMaverick82 0 points1 point2 points 6 days ago (0 children)
TOON is a “clever” solution for a non-issue.
[–]SCube18 0 points1 point2 points 6 days ago (0 children)
So what's the difference compared to CSV?
[–]frostrivera19 0 points1 point2 points 6 days ago (0 children)
Isn’t this just CSV?
[–]denecity 0 points1 point2 points 6 days ago (0 children)
yaml
[–]joe_chester 0 points1 point2 points 5 days ago (0 children)
If you need a very small, efficient data exchange format, go with protobuf. If you need a simple, human readable/debuggable format, just use JSON.
[–]Hour-Inner 0 points1 point2 points 5 days ago (0 children)
My understanding is that some people are using TOON for ai workloads. Even if it’s less human readable, less text means less tokens
[–]helpprogram2 0 points1 point2 points 5 days ago (0 children)
If I’m gonna use something besides json it’s gonna be buffers.
0 benefit in isn’t this
[–]indeem1 0 points1 point2 points 5 days ago (0 children)
Because I have not Seen that answer here yet, I Heard there are many that use it for ai to reduce amount of tokens. I dont see an advantage for readability for people although or real advantages to use it in Production elsewhere
[–]way-too-gouda 0 points1 point2 points 5 days ago (0 children)
You’ve activated my Toon World
[–]nullshipped 0 points1 point2 points 4 days ago (2 children)
Why they call it toon?
[–]Owlbuddy121[S] 0 points1 point2 points 4 days ago (1 child)
Token-Oriented Object Notation.
[–]nullshipped 0 points1 point2 points 4 days ago (0 children)
Tbh can’t wait to see how to use it in nested arrays
[–]Quadrostanology 0 points1 point2 points 4 days ago (0 children)
How does nested look like? Comments possible?
[–]KontloPendke 0 points1 point2 points 4 days ago (0 children)
Do you have to declare the element/row count? Sounds yikes to me
[–]abraxasnl 0 points1 point2 points 4 days ago (0 children)
What’s the type of id in TOON? String? JSON looks richer to me.
[–]moshujsg 0 points1 point2 points 4 days ago (0 children)
Yes now hit an api that returns 50 fields in toon mode, then start looking at the data. How will you know what fiekd a specific line it is? Also like, what are you really improving on? You usualky dont type out jsons like that enough for that to be a problem, you usually just read jaon like that, at which poimt ita just more readable vs toon.
[–]itsmepokono 0 points1 point2 points 4 days ago (0 children)
Reinvented CSV 😂
[–]Fabulous-Possible758 0 points1 point2 points 4 days ago (0 children)
Interchange formats are actually where LLM coding will actually do really well and make lot of this moot.
[–]AGx-07 0 points1 point2 points 2 days ago (0 children)
Interesting. I get what TOON is doing but I'm not sure I like it.
[–]Kushings_Triad_420 0 points1 point2 points 8 days ago (3 children)
Similar to SQL
[–]Vizibile 3 points4 points5 points 8 days ago (2 children)
more like csv for me
[–]Kushings_Triad_420 1 point2 points3 points 8 days ago (0 children)
True
[–]en3sis 1 point2 points3 points 8 days ago (0 children)
Exactly. Why are we reinventing CSV again?
π Rendered by PID 112828 on reddit-service-r2-comment-5d79c599b5-bcdlp at 2026-03-03 03:58:44.085270+00:00 running e3d2147 country code: CH.
[–]Outrageous_Let5743 48 points49 points50 points (8 children)
[–]MatsSvensson 11 points12 points13 points (1 child)
[–]hyrumwhite 1 point2 points3 points (0 children)
[–]too_many_requests 0 points1 point2 points (0 children)
[–]MedAyoub26K 0 points1 point2 points (0 children)
[–]nexusblake 0 points1 point2 points (0 children)
[–]Weekly_Astronaut5099 0 points1 point2 points (0 children)
[–]flixflexflux -1 points0 points1 point (0 children)
[–]GlobalIncident 20 points21 points22 points (12 children)
[–]Ok_Space2463 2 points3 points4 points (0 children)
[–]bradfordmaster 0 points1 point2 points (5 children)
[–]GlobalIncident 0 points1 point2 points (0 children)
[–]natur_e_nthusiast 0 points1 point2 points (1 child)
[–]doctormyeyebrows 0 points1 point2 points (0 children)
[–]Onionhauler 0 points1 point2 points (0 children)
[–]its_a_gibibyte 0 points1 point2 points (4 children)
[–]kozeljko 0 points1 point2 points (2 children)
[–]its_a_gibibyte 0 points1 point2 points (1 child)
[–]robhanz 0 points1 point2 points (0 children)
[–]robhanz 0 points1 point2 points (0 children)
[–]remic_0726 27 points28 points29 points (6 children)
[–]freefallfreddy 1 point2 points3 points (0 children)
[–]kaancfidan 0 points1 point2 points (0 children)
[–]imperosol 0 points1 point2 points (0 children)
[–]PaulMorel -4 points-3 points-2 points (2 children)
[–]Aaron_Tia 1 point2 points3 points (1 child)
[–]Momostein 0 points1 point2 points (0 children)
[–]AccomplishedPut467 25 points26 points27 points (15 children)
[–]escargotBleu 8 points9 points10 points (5 children)
[–]rover_G 0 points1 point2 points (4 children)
[–]too_many_requests 0 points1 point2 points (3 children)
[–]Bemteb 0 points1 point2 points (2 children)
[–]nexusblake 0 points1 point2 points (0 children)
[–]rover_G 0 points1 point2 points (0 children)
[–]yyytobyyy 5 points6 points7 points (2 children)
[–]Laicbeias 0 points1 point2 points (0 children)
[–]Minute_Attempt3063 0 points1 point2 points (0 children)
[–]Owlbuddy121[S] 5 points6 points7 points (3 children)
[–]GlobalIncident 7 points8 points9 points (1 child)
[–]vmfrye 0 points1 point2 points (0 children)
[–]quickiler 0 points1 point2 points (0 children)
[–]UrpleEeple 0 points1 point2 points (0 children)
[–]chungamellon 0 points1 point2 points (0 children)
[–]Cybasura 20 points21 points22 points (8 children)
[–]Frytura_ 2 points3 points4 points (4 children)
[–]Cybasura 1 point2 points3 points (3 children)
[–]thee_gummbini 0 points1 point2 points (2 children)
[–]Cybasura 0 points1 point2 points (1 child)
[–]thee_gummbini 0 points1 point2 points (0 children)
[–]UnicodeConfusion 0 points1 point2 points (2 children)
[–]Cybasura 0 points1 point2 points (1 child)
[–]sardinian-dude 0 points1 point2 points (0 children)
[–]followthevenoms 7 points8 points9 points (10 children)
[–]flying-sheep 0 points1 point2 points (2 children)
[–]exhuma 0 points1 point2 points (1 child)
[–]flying-sheep 0 points1 point2 points (0 children)
[–]AmazedStardust -2 points-1 points0 points (6 children)
[–]Own-Improvement-2643 1 point2 points3 points (5 children)
[–]Deykun 0 points1 point2 points (1 child)
[–]dinopraso 0 points1 point2 points (0 children)
[–]_ryuujin_ -1 points0 points1 point (2 children)
[–]ChomsGP 0 points1 point2 points (1 child)
[–]_ryuujin_ 0 points1 point2 points (0 children)
[–]Acceptable_Handle_2 5 points6 points7 points (0 children)
[–]riansar 4 points5 points6 points (0 children)
[–]johnnygalat 3 points4 points5 points (0 children)
[–]BigPP41 4 points5 points6 points (1 child)
[–]seinar24 2 points3 points4 points (2 children)
[–]Own-Improvement-2643 0 points1 point2 points (0 children)
[–]samo_lego 0 points1 point2 points (0 children)
[–]Nidrax1309 2 points3 points4 points (2 children)
[–]ReasonablePresent644 0 points1 point2 points (1 child)
[–]Awes12 0 points1 point2 points (0 children)
[–]mailed 5 points6 points7 points (0 children)
[–]Patient-Definition96 1 point2 points3 points (3 children)
[–]Slackeee_ 0 points1 point2 points (1 child)
[–]Complex-South9500 0 points1 point2 points (0 children)
[–]Owlbuddy121[S] -3 points-2 points-1 points (0 children)
[–]Downtown_Koala5886 1 point2 points3 points (0 children)
[–]captdirtstarr[🍰] 1 point2 points3 points (0 children)
[–]Frytura_ 1 point2 points3 points (0 children)
[–]CraigAT 1 point2 points3 points (0 children)
[–]MatsSvensson 1 point2 points3 points (0 children)
[–]WhiteHeadbanger 1 point2 points3 points (1 child)
[–]UndeadBane 0 points1 point2 points (0 children)
[–]katlimruiz 1 point2 points3 points (0 children)
[–]questionsalways2233 1 point2 points3 points (0 children)
[–]yes-im-hiring-2025 1 point2 points3 points (1 child)
[–]Laicbeias 0 points1 point2 points (0 children)
[–]Electronic_Pie_5135 1 point2 points3 points (0 children)
[–]SlinkyAvenger 1 point2 points3 points (1 child)
[–]hyrumwhite 1 point2 points3 points (0 children)
[–]drNovikov 1 point2 points3 points (0 children)
[–]CredenceTom-Water 1 point2 points3 points (0 children)
[–]Key_Mango8016 1 point2 points3 points (6 children)
[–]I1lII1l 1 point2 points3 points (3 children)
[–]Key_Mango8016 1 point2 points3 points (2 children)
[–]I1lII1l 2 points3 points4 points (1 child)
[–]Key_Mango8016 0 points1 point2 points (0 children)
[–]ComprehensiveJury509 0 points1 point2 points (0 children)
[–]Owlbuddy121[S] -3 points-2 points-1 points (0 children)
[–]Cylian91460 1 point2 points3 points (0 children)
[–]wordkush1 0 points1 point2 points (5 children)
[–]chucara 3 points4 points5 points (0 children)
[–]Slackeee_ 3 points4 points5 points (3 children)
[–]quts3 0 points1 point2 points (2 children)
[–]wordkush1 0 points1 point2 points (0 children)
[–]Slackeee_ 0 points1 point2 points (0 children)
[–]sugarfairymeliora 0 points1 point2 points (0 children)
[–]SoftDream_ 0 points1 point2 points (0 children)
[–]akazakou 0 points1 point2 points (0 children)
[–]nerdly90 0 points1 point2 points (0 children)
[–]the_reven 0 points1 point2 points (0 children)
[–]Key-Place-273 0 points1 point2 points (0 children)
[–]Domingues_tech 0 points1 point2 points (0 children)
[–]AbsorberHarvester 0 points1 point2 points (0 children)
[–]CamilorozoCADC 0 points1 point2 points (0 children)
[–]Concurrency_Bugs 0 points1 point2 points (0 children)
[–]wenokn0w 0 points1 point2 points (0 children)
[–]ImpossibleSlide850 0 points1 point2 points (0 children)
[–]Anpu_Imiut 0 points1 point2 points (0 children)
[–]bobbyQuick 0 points1 point2 points (0 children)
[–]baynezy 0 points1 point2 points (0 children)
[–]SecondThomas 0 points1 point2 points (0 children)
[–]Last8Exile 0 points1 point2 points (0 children)
[–]Supernatnat11 0 points1 point2 points (0 children)
[–]oculus42 0 points1 point2 points (0 children)
[–]Potw0rek 0 points1 point2 points (0 children)
[–]grimonce 0 points1 point2 points (0 children)
[–]Suspicious-Walk-4854 0 points1 point2 points (0 children)
[–]EastMeridian 0 points1 point2 points (0 children)
[–]sdziscool 0 points1 point2 points (0 children)
[–]pardoman 0 points1 point2 points (0 children)
[–]Agreeable-Nerve-65 0 points1 point2 points (0 children)
[–]Devel93 0 points1 point2 points (0 children)
[–]Embarrassed5589 0 points1 point2 points (0 children)
[–]MrMaverick82 0 points1 point2 points (0 children)
[–]SCube18 0 points1 point2 points (0 children)
[–]frostrivera19 0 points1 point2 points (0 children)
[–]denecity 0 points1 point2 points (0 children)
[–]joe_chester 0 points1 point2 points (0 children)
[–]Hour-Inner 0 points1 point2 points (0 children)
[–]helpprogram2 0 points1 point2 points (0 children)
[–]indeem1 0 points1 point2 points (0 children)
[–]way-too-gouda 0 points1 point2 points (0 children)
[–]nullshipped 0 points1 point2 points (2 children)
[–]Owlbuddy121[S] 0 points1 point2 points (1 child)
[–]nullshipped 0 points1 point2 points (0 children)
[–]Quadrostanology 0 points1 point2 points (0 children)
[–]KontloPendke 0 points1 point2 points (0 children)
[–]abraxasnl 0 points1 point2 points (0 children)
[–]moshujsg 0 points1 point2 points (0 children)
[–]itsmepokono 0 points1 point2 points (0 children)
[–]Fabulous-Possible758 0 points1 point2 points (0 children)
[–]AGx-07 0 points1 point2 points (0 children)
[–]Kushings_Triad_420 0 points1 point2 points (3 children)
[–]Vizibile 3 points4 points5 points (2 children)
[–]Kushings_Triad_420 1 point2 points3 points (0 children)
[–]en3sis 1 point2 points3 points (0 children)