Comments (7)
Looks like some new tests were added, including some spec-invalid cases. I've updated the set above to include the new invalid ones.
from json-path-comparison.
I've recently updated my implementation (JsonPath.Net) to conform with the spec. I haven't published it yet, but I wanted to share a finding.
These tests are not in alignment with the spec.
That reflects the fact that the IETF spec is incompatible in important ways with all existing implementations to 2022, which in turn are incompatible in important ways with themselves. And important implementations such as Jayway can't change very much, because they have thousands of artifacts depending on them, are incorporated into enterprise APIs, and have large existing user communities.
It does raise the suggestion that the IETF spec is not so much about standardizing existing practice, as it is about making something new. Perhaps it should be called something new, much as what started off as an IETF effort to standardize MessagePack became CBOR. The IETF spec is certainly as different from Goessner JSONPath and Jayway JSONPath as IETF CBOR is from MessagePack.
Daniel
from json-path-comparison.
I think Jayway's approach, if they want to implement the spec, would need to be to have a "spec-compliant" mode. Maybe even make that the default after a major version bump.
I'll update the above with reasons why some of these aren't included.
from json-path-comparison.
I think Jayway's approach, if they want to implement the spec, would need to be to have a "spec-compliant" mode. Maybe even make that the default after a major version bump.
I think Jayway is in maintenance mode, I don't think anybody there would undertake the effort. And besides, the draft's approach to expression evaluation is fundamentally different than Jayway's, or for that matter, any existing implementation up to 2022. I think most conforming implementations are going to be new implementations, I would have said all, except I understand json-everything is doing that! But for the most part, the old implementations that have users and artifacts dependent on them are going to stay the same.
from json-path-comparison.
I agree with that sentiment, and @hiltontj's recent efforts are proof.
Specifically, I think these wouldn't be too hard to support:
- JSON object and array literals in expressions
- leading and trailing whitespace tolerance
in
operator- math operators
- relative paths (I fear we alienated the contributor who proposed this)
from json-path-comparison.
- relative paths (I fear we alienated the contributor who proposed this)
Indeed, but at least we learned something about what "rough consensus" really meant.
from json-path-comparison.
☝️ I've now added these things behind options in my lib. Really easy to implement.
from json-path-comparison.
Related Issues (20)
- Is it possible to provide JSONPath test cases based on consensus results HOT 7
- Show footnote 4 if applicable on the query detail page
- Need test for filter expression checking for local key in array with a null value
- Incorporating and merging with the compliance test suite HOT 3
- Add nimma
- Include github.com/SteelBridgeLabs/jsonpath HOT 1
- Failing build of Java implementations in the docker container HOT 1
- Add serde_json_path HOT 2
- Add jpt HOT 2
- Bump JsonPath.Net to v1.0.0 HOT 3
- Comparing dotNET_JsonPathLib questionable
- Project governance HOT 7
- Link to reference implementation
- Support for path axis navigation HOT 11
- Issue with display of queries containing the * character HOT 1
- Expand on type of consensus HOT 2
- Tests for root reference in filter expressions. HOT 3
- Analysis HOT 2
- provide key for table contents HOT 8
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 json-path-comparison.