-
Notifications
You must be signed in to change notification settings - Fork 11
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Accessing variables in Object with key containing a dot #23
Comments
Hey @tatarysh, I believe I've seen this issue pop up before in the original json-logic-js repo: And semi-related: The suggestion to use the dot-prop convention is a solid recommendation. I may take a peek into issue 110 from json-logic-js with a bit more intent after merging this in. |
Add support for dot-prop syntax to resolve #23
Hi, I've published Please let me know if you run into any issues / have any recommendations! (I will need to update the documentation to include this information) |
great job, thanks 🙏 |
Hey @tatarysh, I'm working with some other project maintainers to try to consolidate JSON Logic behaviors across different implementations. How significantly would it impact y'all if we changed how escaping works in This change would let y'all use JSON Pointer to access your variables, while maintaining backwards compatibility with most logic. It would change how you escape dots though, so instead of Sample test suite here: We're also maybe considering offering another operator that wouldn't have any path parsing: Which would make it easier to access awkward keys. If we changed this, would you be able to make the necessary adjustments? |
@tatarysh False alarm; preferences have swung back the other way for the dotprop notation. Instead, the iterator syntax Instead of |
@tatarysh Double false alarm. So here's the deal: I did not want to break backwards compatibility with JSON Logic. I feel it's pretty important that we avoid breaking user's logic. I was okay with potentially interrupting non-standard extensions, like my handlebars syntax, but I felt it was important to not invalidate every implementation of JSON Logic across the ecosystem. After some discussion, we decided that it might be best to move certain operators into a Legacy "Extension" for JSON Logic Core. The legacy extension will be in our recommended baseline, the operators won't "break", and will be present in our compat tables, but for the purposes of developing a stronger core, we planned to define replacements. The follow up to this proposal was this guy: Folks can keep their implementations of And we encourage folks to start using While the scope syntax has not quite yet been voted on, I believe it will look like the following: { "val": [[2], "name"] } Which ascends 2 scopes, and gets tl;dr No breaking releases will occur for this library.
|
I encountered an issue related to accessing variables within an object where the key contains a dot. The logical query looks like this:
And the payload is:
Currently, there is no access to the
hello.world
variable. I believe it would be beneficial to adopt the convention used in thedot-prop
package, where access to such a key is possible by including a double backslash before the dot in the key. Therefore, for the mentioned query, it should look like this:The text was updated successfully, but these errors were encountered: