# Who's heard of this new \`TOON\` structure? Thoughts?

**URL:** <https://discourse.nodered.org/t/whos-heard-of-this-new-toon-structure-thoughts/99741>\
**Category:** General\
**Created:** [21 November 2025 22:41 UTC](https://discourse.nodered.org/t/whos-heard-of-this-new-toon-structure-thoughts/99741 "2025-11-21T22:41:23Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![Trying\_to\_learn](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/trying_to_learn/32/28400_2.png) [@Trying\_to\_learn](https://discourse.nodered.org/u/Trying_to_learn)\
**Post date:** [21 November 2025 22:41 UTC](https://discourse.nodered.org/t/whos-heard-of-this-new-toon-structure-thoughts/99741/1 "2025-11-21T22:41:24Z")

</div>

Just watched this clip:

[![](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/c/5/c5b50f9e310a403cfadb3229fda996b7ea646047.jpeg "Is JSON Dead? What is TOON? The New Data Format Built for AI | Lazy Programmer") ](https://www.youtube.com/watch?v=KMyLefTzyUg)

Just wondering how much impact it will have here.

---

<div class="post-metadata">

**Author:** ![TotallyInformation](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/totallyinformation/32/31_2.png) [@TotallyInformation](https://discourse.nodered.org/u/TotallyInformation)\
**Post date:** [21 November 2025 23:54 UTC](https://discourse.nodered.org/t/whos-heard-of-this-new-toon-structure-thoughts/99741/2 "2025-11-21T23:54:55Z")

</div>

Just another specialist text-based data structure. JSON remains super convenient in JavaScript and other programming environments, convert to TOON (shesh! What a painful name!) if needed when passing to an LLM (in the future when it is actually properly supported - if that ever happens). Or use CSV, ...

---

<div class="post-metadata">

**Author:** ![bakman2](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/bakman2/32/6207_2.png) [@bakman2](https://discourse.nodered.org/u/bakman2)\
**Post date:** [22 November 2025 05:44 UTC](https://discourse.nodered.org/t/whos-heard-of-this-new-toon-structure-thoughts/99741/3 "2025-11-22T05:44:53Z")

</div>

Why did they come up with it ? Because AI cost them too much in token usage as JSON is larger.  
For the rest it is not very useful and JSON will not go anywhere I think.

---

<div class="post-metadata">

**Author:** ![omrid](https://avatars.discourse-cdn.com/v4/letter/o/77aa72/32.png) [@omrid](https://discourse.nodered.org/u/omrid)\
**Post date:** [22 November 2025 10:39 UTC](https://discourse.nodered.org/t/whos-heard-of-this-new-toon-structure-thoughts/99741/4 "2025-11-22T10:39:33Z")

</div>

JSON is great. If only they did not make this stupid, _deliberate_ decision not to enable comments in the data structure (like in XML). And yes, I am aware of the option to set comments in textual fields which should be ignored by the consumer.

---

<div class="post-metadata">

**Author:** ![Colin](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/colin/32/17040_2.png) [@Colin](https://discourse.nodered.org/u/Colin)\
**Post date:** [22 November 2025 10:51 UTC](https://discourse.nodered.org/t/whos-heard-of-this-new-toon-structure-thoughts/99741/5 "2025-11-22T10:51:09Z")

</div>

+1 on the comments issue.

---

<div class="post-metadata">

**Author:** ![kuema](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/kuema/32/6542_2.png) [@kuema](https://discourse.nodered.org/u/kuema)\
**Post date:** [22 November 2025 11:15 UTC](https://discourse.nodered.org/t/whos-heard-of-this-new-toon-structure-thoughts/99741/6 "2025-11-22T11:15:26Z")

</div>

Yet another one... 🙄 Which reminds me of [xkcd: Standards](https://xkcd.com/927/)

As for comments... I mostly use YAML for config stuff, you can have comments and other nice features like anchors for reusability.

And since it's a superset of JSON, you can use JSON in YAML documents as well 😁

---

<div class="post-metadata">

**Author:** ![dceejay](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/dceejay/32/38_2.png) [@dceejay](https://discourse.nodered.org/u/dceejay)\
**Post date:** [22 November 2025 12:38 UTC](https://discourse.nodered.org/t/whos-heard-of-this-new-toon-structure-thoughts/99741/7 "2025-11-22T12:38:55Z")

</div>

It is a wet Saturday morning.... so hey - [node-red-node-toon (node) - Node-RED](https://flows.nodered.org/node/node-red-node-toon)

---

<div class="post-metadata">

**Author:** ![dynamicdave](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/dynamicdave/32/96_2.png) [@dynamicdave](https://discourse.nodered.org/u/dynamicdave)\
**Post date:** [22 November 2025 13:36 UTC](https://discourse.nodered.org/t/whos-heard-of-this-new-toon-structure-thoughts/99741/8 "2025-11-22T13:36:00Z")

</div>

I was just about to look to see if anyone had built a Toon converter node.

---

<div class="post-metadata">

**Author:** ![ThingsTinkerer](https://avatars.discourse-cdn.com/v4/letter/t/91b2a8/32.png) [@ThingsTinkerer](https://discourse.nodered.org/u/ThingsTinkerer)\
**Post date:** [22 November 2025 14:47 UTC](https://discourse.nodered.org/t/whos-heard-of-this-new-toon-structure-thoughts/99741/9 "2025-11-22T14:47:21Z")

</div>

I was thinking about json yesterday. Didn't know about TOON. But I have slowly grown to prefer javascript objects. And it seems like when I searched for the topic, some people didn't even understand the point of it. Perhaps this can make it clear:

JSON:

```auto
{
  "users": [
    {"id": 1, "name": "A", "role": "Admin"},
    {"id": 2, "name": "B", "role": "User"},
    {"id": 3, "name": "C", "role": "User"}
}

```

JS Object:

```auto
{
  users: [
    {id: 1, name: "A", role: "Admin"},
    {id: 2, name: "B", role: "User"}, // can have comments
    {id: 3, name: "C", role: "User"}, // optional trailing comma
}

```

Looks way cleaner to me! Perhaps a lot of people don't work with json directly (but parse it directly into their preferred language instead). Perhaps using jsonc to support comments (it is nice, but rarely supported. Don't think NR has any easy way to import it?). Perhaps there are loopholes to this. One argument I heard was that JSON can be used by all languages, not just js. But if JSON can be used, then there is no hard limitation that prevents js object to be used also. I'm perfectly happy about having limitations like no functions, no funky var names etc. I'd love to be able to parse such a js object from file in NR, but I don't think that's possible either.

---

<div class="post-metadata">

**Author:** ![zenofmud](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/zenofmud/32/316_2.png) [@zenofmud](https://discourse.nodered.org/u/zenofmud)\
**Post date:** [22 November 2025 15:13 UTC](https://discourse.nodered.org/t/whos-heard-of-this-new-toon-structure-thoughts/99741/10 "2025-11-22T15:13:36Z")

</div>

Umm, looks like your JS Object is missing a closing ]

---

<div class="post-metadata">

**Author:** ![omrid](https://avatars.discourse-cdn.com/v4/letter/o/77aa72/32.png) [@omrid](https://discourse.nodered.org/u/omrid)\
**Post date:** [22 November 2025 15:14 UTC](https://discourse.nodered.org/t/whos-heard-of-this-new-toon-structure-thoughts/99741/11 "2025-11-22T15:14:39Z")

</div>

JS objects are supposed to be used in code execution, not for transferring data. They can include properties not supported by JSON (e.g. functions) hence JSON\<-\>JS conversion is not fully bidirectional, and imposes a risk of code injection. But if you restrict the object to data properties only, then it's a nice idea, which I like.

---

<div class="post-metadata">

**Author:** ![Colin](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/colin/32/17040_2.png) [@Colin](https://discourse.nodered.org/u/Colin)\
**Post date:** [22 November 2025 15:34 UTC](https://discourse.nodered.org/t/whos-heard-of-this-new-toon-structure-thoughts/99741/12 "2025-11-22T15:34:41Z")

</div>

Note that JSON is always a string. It is a string representation of a javascript object. It stands for Javascript Object Notation.

[This post](https://www.koombea.com/blog/json-vs-javascript/) and [this post](https://dev.to/desoga/javascript-object-vs-json-demystified-494j) should help to clarify the difference between Javascript objects and JSON.

---

<div class="post-metadata">

**Author:** ![dynamicdave](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/dynamicdave/32/96_2.png) [@dynamicdave](https://discourse.nodered.org/u/dynamicdave)\
**Post date:** [22 November 2025 16:31 UTC](https://discourse.nodered.org/t/whos-heard-of-this-new-toon-structure-thoughts/99741/13 "2025-11-22T16:31:52Z")

</div>

> [@ThingsTinkerer](#):
>
> ```auto
> {
> "users": [
> {"id": 1, "name": "A", "role": "Admin"},
> {"id": 2, "name": "B", "role": "User"},
> {"id": 3, "name": "C", "role": "User"}
> }
> 
> ```

And the JSON example is also missing a closing` ]` bracket.  
Should be...

```auto
{
  "users": [
    { "id": 1, "name": "A", "role": "Admin" },
    { "id": 2, "name": "B", "role": "User" },
    { "id": 3, "name": "C", "role": "User" }
  ]
}

```

---

<div class="post-metadata">

**Author:** ![Colin](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/colin/32/17040_2.png) [@Colin](https://discourse.nodered.org/u/Colin)\
**Post date:** [22 November 2025 16:37 UTC](https://discourse.nodered.org/t/whos-heard-of-this-new-toon-structure-thoughts/99741/14 "2025-11-22T16:37:43Z")

</div>

> [@ThingsTinkerer](#):
>
> But if JSON can be used, then there is no hard limitation that prevents js object to be used also.

I don't understand what you mean by that. Where do you mean that you could use either? JS objects can only be used in JS. JSON strings can be used anywhere.

> [@ThingsTinkerer](#):
>
> I'd love to be able to parse such a js object from file in NR

In a function node you can do `JSON.parse(someStringVariable)` to convert JSON to JS object.

---

<div class="post-metadata">

**Author:** ![bakman2](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/bakman2/32/6207_2.png) [@bakman2](https://discourse.nodered.org/u/bakman2)\
**Post date:** [22 November 2025 16:56 UTC](https://discourse.nodered.org/t/whos-heard-of-this-new-toon-structure-thoughts/99741/15 "2025-11-22T16:56:25Z")

</div>

Keep in mind that the TOON format is only meant to be used with AI to reduce the number of used tokens, ie: _Token-Oriented Object Notation_

> Token-Oriented Object Notation is a compact, human-readable encoding of the JSON data model that minimizes tokens and makes structure easy for models to follow. It's intended for _LLM input_ as a drop-in, lossless representation of your existing JSON.

---

<div class="post-metadata">

**Author:** ![TotallyInformation](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/totallyinformation/32/31_2.png) [@TotallyInformation](https://discourse.nodered.org/u/TotallyInformation)\
**Post date:** [22 November 2025 17:34 UTC](https://discourse.nodered.org/t/whos-heard-of-this-new-toon-structure-thoughts/99741/16 "2025-11-22T17:34:31Z")

</div>

> [@omrid](#):
>
> stupid, _deliberate_ decision not to enable comments

Totally agree! Trailing comma's is another bug-bear of mine. I'm constantly caught out by that one.

> [@Colin](#):
>
> JS objects can only be used in JS. JSON strings can be used anywhere.

And that's the point isn't it. You can code a JavaScript object as JSON and it will work as expected. The difference only really matters once you want to move that data out of native JavaScript.

---

<div class="post-metadata">

**Author:** ![Trying\_to\_learn](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/trying_to_learn/32/28400_2.png) [@Trying\_to\_learn](https://discourse.nodered.org/u/Trying_to_learn)\
**Post date:** [22 November 2025 19:17 UTC](https://discourse.nodered.org/t/whos-heard-of-this-new-toon-structure-thoughts/99741/17 "2025-11-22T19:17:56Z")

</div>

## _(What have I done?)_

Seems I really poked a touchy subject.

But it is interesting to see people's reactions.

---

<div class="post-metadata">

**Author:** ![Colin](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/colin/32/17040_2.png) [@Colin](https://discourse.nodered.org/u/Colin)\
**Post date:** [22 November 2025 20:17 UTC](https://discourse.nodered.org/t/whos-heard-of-this-new-toon-structure-thoughts/99741/18 "2025-11-22T20:17:27Z")

</div>

I hadn't noticed any touchiness.

---

<div class="post-metadata">

**Author:** ![TotallyInformation](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/totallyinformation/32/31_2.png) [@TotallyInformation](https://discourse.nodered.org/u/TotallyInformation)\
**Post date:** [22 November 2025 21:01 UTC](https://discourse.nodered.org/t/whos-heard-of-this-new-toon-structure-thoughts/99741/19 "2025-11-22T21:01:03Z")

</div>

> [@Trying\_to\_learn](#):
>
> Seems I really poked a touchy subject.

I'd say _passionate_ rather than touchy. 🙂 Its who and what we we are. 🤣

---

<div class="post-metadata">

**Author:** ![Trying\_to\_learn](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/trying_to_learn/32/28400_2.png) [@Trying\_to\_learn](https://discourse.nodered.org/u/Trying_to_learn)\
**Post date:** [22 November 2025 21:02 UTC](https://discourse.nodered.org/t/whos-heard-of-this-new-toon-structure-thoughts/99741/20 "2025-11-22T21:02:22Z")

</div>

I failed English. 😉

You are right. It was the wrong word, but the best at the time.

[Next page](https://discourse.nodered.org/t/whos-heard-of-this-new-toon-structure-thoughts/99741.md?page=2)
