JSONata Node

JSONata is a an incredibly flexible and feature complete way to transform JSON.
As data transformation is key to pretty much all n8n use cases it would be great to have it installed by default (or at least with a flag).

Even better would be a GUI to handle common use cases that would help build the code that could be switched into advanced (edit the code directly).

Hey @Matt2012,

We released the Item Lists node that handles a lot of transformation. Let us know if that node covers your use case :slight_smile:

(You will have to update n8n to 0.138.0 to use the node)

1 Like

This is a great addition which handles a lot of the main requirements. However JSONATA still offers stuff I doubt you would ever get to such as being able to do computations on json data. (AVG, SUM etc.).
As well as sophisticated filters.

I would still strongly recommend that JSONATA be included as a library (like moment.js I think is) . So it could be used in a function node.

1 Like

In fact, I have already implemented this node in my system. I can provide this opne source and make a pull request.
In general I still have many nodes that I would like to make available to n8n.
Currently I would only have to compare what n8n has already implemented itself and of course clean everything up.

4 Likes

That would be amazing.

I will look for it after my holiday :slight_smile:

JSON query languages are super powerful. Any particular reason to use JSONata over other alternatives (say, JMESPath)?

Looks good. Maybe the answer is an easy way to add node.js libraries to the function node rather than end up with hundreds of discrete nodes. @sirdavidoff @lublak @harshil1712

I just find the development of nodes more important than external nodejs modules. It allows to address the necessary fields directly in the interface.
I use function nodes rather reluctantly only if it can not be avoided.
Nocode facilitates the overview for non-developers and a workflow system should also go there.
Otherwise you could also write everything in source code. for this there are also the necessary frameworks :slight_smile: @Matt2012
But here too! My opinion. Everyone can of course have a different point of view on it.

What we’re looking into right now is extending expressions, to add helper functions for common things. So you could write, for example {{$now.plus(2, 'days')}}

Any thoughts on what kind of helper functions you’d like to see?