Comments (6)
FYI, I was just chatting today with @andrew-coleman about this topic. I had created a proof of concept implementation of connecting jsonata
to RxJS Observable
s. That implementation can bind both variables and the input value to Observable
s. The implementation should be reasonably efficient in terms of re-evaluations. By that I mean that it should only recompute things that actually need updating.
Note this used an alternative evaluation engine that I had created. That engine could also be applied to things like streams, mobx
style observables, Promises, etc. As I said, it was just a proof of concept but perhaps someday it will mature to a point where others can use it.
from jsonata.
Closing this issue. Sounds like @xogeny's implementation might address this which will hopefully be the basis for the next major version of JSONata.
from jsonata.
from jsonata.
Thanks for the headsup @bmpvieira.
I think it will be more complex than that, the reason being that we are presupposing a ndjson of small objects. What happens if we have a single json object that is massive with hundreds of keys and big nested arrays?
I haven't checked yet how JSONata works internally but I think it would be more relevant research for solutions that transform a JSONata expression to a SAX like event stream that works at byte level instead of object level. I am talking about something similar to what JSONStream does but with the much nicer JSONata syntax. This would be more performant than parsing whole objects and would cover a wide range of use cases.
from jsonata.
We are starting to think about how we might apply JSONata to streams. It's a complex area, and we don't expect to be able to solve all the problems. But we might be able to solve some.
Do you have any use cases that you can share with us which might help to guide our thinking? In particular I'm interested in cases where the JSONata syntax would have a clear advantage over JSONStream. Or perhaps some cases where combining JSONStream and JSONata has the potential to be made more straightforward.
from jsonata.
FYI, I was just chatting today with @andrew-coleman about this topic. I had created a proof of concept implementation of connecting
jsonata
to RxJSObservable
s. That implementation can bind both variables and the input value toObservable
s. The implementation should be reasonably efficient in terms of re-evaluations. By that I mean that it should only recompute things that actually need updating.Note this used an alternative evaluation engine that I had created. That engine could also be applied to things like streams,
mobx
style observables, Promises, etc. As I said, it was just a proof of concept but perhaps someday it will mature to a point where others can use it.
@xogeny Is this implemented now? If not, can I get your proof of concept implementation somewhere?
from jsonata.
Related Issues (20)
- How to return the value from jsonata instead of promise/async HOT 3
- Dry run, return expected schema for a given input schema
- How to handle undefined value HOT 2
- $formatDateTime(millis, picture [, timezone]) and $parseDateTime(timestamp, picture) HOT 1
- Clarification : Is there Any Feature for Apply Break or Continue in Looping HOT 1
- parallel map
- switch case or if else
- Truthiness of numbers is completely random
- Help resolve current pinning to 1.8.6 for JSONata-Wrapper (possibly ducktape compatibility)
- Reserved Tokens Documentation
- ($.some_non_existent_key != 'anything') evaluates to false HOT 3
- $string(number) capped at precision-15
- Error handling and asynchronous behavior in evaluate function
- Rounding number without "Round half to even"
- There isn't a uuid() function for JSONata HOT 2
- Hard spaces in documentation not rendered correctly
- Security contact for JSONata HOT 4
- default query on try.jsonata.org HOT 1
- is 2.0.4 a fake release? HOT 4
- Multi-level JSON processing: Unwrapping Objects
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from jsonata.