{"id":13760797,"url":"https://github.com/eiiches/jackson-jq","last_synced_at":"2025-05-16T08:03:25.639Z","repository":{"id":2161695,"uuid":"45832751","full_name":"eiiches/jackson-jq","owner":"eiiches","description":"jq for Jackson Java JSON Processor","archived":false,"fork":false,"pushed_at":"2025-05-06T00:07:22.000Z","size":970,"stargazers_count":291,"open_issues_count":39,"forks_count":39,"subscribers_count":17,"default_branch":"develop/1.x","last_synced_at":"2025-05-06T01:21:02.381Z","etag":null,"topics":["jackson","java","jq","json"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/eiiches.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2015-11-09T11:01:54.000Z","updated_at":"2025-04-19T06:52:39.000Z","dependencies_parsed_at":"2024-01-15T03:57:29.423Z","dependency_job_id":"567fcbf6-f6fa-49da-9bf4-19d35b41bfec","html_url":"https://github.com/eiiches/jackson-jq","commit_stats":{"total_commits":363,"total_committers":17,"mean_commits":"21.352941176470587","dds":"0.31955922865013775","last_synced_commit":"f838b67a92fbc445abbe492eae168585591b7814"},"previous_names":[],"tags_count":27,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eiiches%2Fjackson-jq","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eiiches%2Fjackson-jq/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eiiches%2Fjackson-jq/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eiiches%2Fjackson-jq/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/eiiches","download_url":"https://codeload.github.com/eiiches/jackson-jq/tar.gz/refs/heads/develop/1.x","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254493381,"owners_count":22080126,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["jackson","java","jq","json"],"created_at":"2024-08-03T13:01:22.229Z","updated_at":"2025-05-16T08:03:25.613Z","avatar_url":"https://github.com/eiiches.png","language":"Java","funding_links":[],"categories":["Java"],"sub_categories":[],"readme":"jackson-jq\n==========\n\nPure Java [jq](http://stedolan.github.io/jq/) Implementation for Jackson JSON Processor\n\n[![GitHub Actions](https://github.com/eiiches/jackson-jq/workflows/test/badge.svg)](https://github.com/eiiches/jackson-jq/actions)\n\n\n\nUsage\n-----\n\nFirst, you need Java 8 or later.\n\nIf you use Maven, add the following snippet to the `\u003cdependencies\u003e` section of your POM. For instructions for other build tools (Gradle, etc.), visit [jackson-jq](https://search.maven.org/artifact/net.thisptr/jackson-jq/1.3.0/jar) on search.maven.org.\n\n```xml\n\u003cdependency\u003e\n\t\u003cgroupId\u003enet.thisptr\u003c/groupId\u003e\n\t\u003cartifactId\u003ejackson-jq\u003c/artifactId\u003e\n\t\u003cversion\u003e1.3.0\u003c/version\u003e\n\u003c/dependency\u003e\n```\n\nSee [jackson-jq/src/test/java/examples/Usage.java](jackson-jq/src/test/java/examples/Usage.java) for the API usage.\n\nUsing a jackson-jq command line tool\n------------------------------------\n\nTo test a query quickly, we provide jackson-jq CLI.\n\n*Please note that jackson-jq is a Java library and the CLI is provided solely for debugging/testing purpose (and not for production). The command-line options might change without notice.*\n\n```sh\n$ curl -LO https://repo1.maven.org/maven2/net/thisptr/jackson-jq-cli/1.3.0/jackson-jq-cli-1.3.0.jar\n\n$ java -jar jackson-jq-cli-1.3.0.jar --help\nusage: jackson-jq [OPTIONS...] QUERY\n -c,--compact      compact instead of pretty-printed output\n -h,--help         print this message\n    --jq \u003carg\u003e     specify jq version\n -n,--null-input   use `null` as the single input value\n -r,--raw          output raw strings, not JSON texts\n\n$ java -jar jackson-jq-cli-1.3.0.jar '.foo'\n{\"foo\": 42}\n42\n```\n\nTo test a query with a specific jq version,\n\n```sh\n$ java -jar jackson-jq-cli-1.3.0.jar --jq 1.5 'join(\"-\")'\n[\"1\", 2]\njq: error: string (\"-\") and number (2) cannot be added\n\n$ java -jar jackson-jq-cli-1.3.0.jar --jq 1.6 'join(\"-\")' # jq-1.6 can join any values, not only strings\n[\"1\", 2]\n\"1-2\"\n```\n\nHomebrew (or Linuxbrew) users can alternatively run `brew tap eiiches/jackson-jq \u0026\u0026 brew install jackson-jq` to install the CLI. `jackson-jq` will be available on your $PATH.\n\nBranches and versioning\n-----------------------\n\nThere are currently two development branches.\n\n* `develop/1.x`: This branch (you are viewing), which is currently under development for the future 1.0 release. You can find preview releases at [Releases](https://github.com/eiiches/jackson-jq/releases) page (tags: `1.0.0-preview.yyyyMMdd`). Although the API is not stable yet, I recommend new users to use these releases insetad of 0.x versions, because these releases have more features, better compatibility, and better performance.\n* `develop/0.x`: The development branch for 0.x versions. Features that need breaking API changes will no longer be added. Go to [Releases](https://github.com/eiiches/jackson-jq/releases) and find the latest 0.x.y version.\n\nPRs can be sent to any of the develop/\\* branches. The patch will be ported to the other branch(es) if necessary.\n\nWe use [Semantic Versioning 2.0.0](https://semver.org/) for Java API versioning, 1.0.0 onwards. A jq behavior fix (even if it may possibly affect users) will not be considered a major change if the fix is to make the bahavior compatible with ./jq; these kind of incompatible changes are documented in the release note.\n\nIf you get different results between ./jq and jackson-jq, please [file an issue](https://github.com/eiiches/jackson-jq/issues). That is a bug on jackson-jq side.\n\nImplementation Status\n---------------------\n\njackson-jq aims to be a compatible jq implementation. However, not every feature is available; some are intentionally omitted because thay are not relevant as a Java library; some may be incomplete, have bugs or are yet to be implemented.\n\n### List of Features\n\n\u003cdetails\u003e\n\u003csummary\u003eClick to see the list\u003c/summary\u003e\n\u003cbr /\u003e\n\nThis table illustrates which features (picked from jq-1.5 manual) are supported and which are not in jackson-jq. We try to keep this list accurate and up to date. If you find something is missing or wrong, please file an issue.\n  \n| Language Features / Functions                                                                                                                                                                                                                                                                                                      | jackson-jq |\n|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------|\n| [Basic filters](https://stedolan.github.io/jq/manual/v1.5/#Basicfilters)                                                                                                                                                                                                                                                           | ○          |\n| \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026bull; [`.`](https://stedolan.github.io/jq/manual/v1.5/#\u0026#46;)                                                                                                                                                                                                                                             | ○          |\n| \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026bull; [`.foo`, `.foo.bar`](https://stedolan.github.io/jq/manual/v1.5/#\u0026#46;foo\u0026#44;\u0026#46;foo\u0026#46;bar)                                                                                                                                                                                                      | ○          |\n| \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026bull; [`.foo?`](https://stedolan.github.io/jq/manual/v1.5/#\u0026#46;foo\u0026#63;)                                                                                                                                                                                                                                 | ○          |\n| \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026bull; [`.[\u003cstring\u003e]`, `.[2]`, `.[10:15]`](https://stedolan.github.io/jq/manual/v1.5/#\u0026#46;\u0026#91;\u0026#60;string\u0026#62;\u0026#93;\u0026#44;\u0026#46;\u0026#91;2\u0026#93;\u0026#44;\u0026#46;\u0026#91;10\u0026#58;15\u0026#93;)                                                                                                                                   | ○          |\n| \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026bull; [`.[]`](https://stedolan.github.io/jq/manual/v1.5/#\u0026#46;\u0026#91;\u0026#93;)                                                                                                                                                                                                                                 | ○          |\n| \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026bull; [`.[]?`](https://stedolan.github.io/jq/manual/v1.5/#\u0026#46;\u0026#91;\u0026#93;\u0026#63;)                                                                                                                                                                                                                           | ○          |\n| \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026bull; [`,`](https://stedolan.github.io/jq/manual/v1.5/#\u0026#44;)                                                                                                                                                                                                                                             | ○          |\n| \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026bull; [`ǀ`](https://stedolan.github.io/jq/manual/v1.5/#\u0026#124;)                                                                                                                                                                                                                                            | ○          |\n| [Types and Values](https://stedolan.github.io/jq/manual/v1.5/#TypesandValues)                                                                                                                                                                                                                                                      | ○          |\n| \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026bull; [Array construction \u0026#45; `[]`](https://stedolan.github.io/jq/manual/v1.5/#Arrayconstruction\u0026#45;\u0026#91;\u0026#93;)                                                                                                                                                                                        | ○          |\n| \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026bull; [Objects \u0026#45; `{}`](https://stedolan.github.io/jq/manual/v1.5/#Objects\u0026#45;\u0026#123;\u0026#125;)                                                                                                                                                                                                           | ○\u003csup\u003e*4\u003c/sup\u003e |\n| [Builtin operators and functions](https://stedolan.github.io/jq/manual/v1.5/#Builtinoperatorsandfunctions)                                                                                                                                                                                                                         | ○          |\n| \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026bull; [Addition \u0026#45; `+`](https://stedolan.github.io/jq/manual/v1.5/#Addition\u0026#45;\u0026#43;)                                                                                                                                                                                                                 | ○          |\n| \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026bull; [Subtraction \u0026#45; `-`](https://stedolan.github.io/jq/manual/v1.5/#Subtraction\u0026#45;\u0026#45;)                                                                                                                                                                                                           | ○          |\n| \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026bull; [Multiplication, division, modulo \u0026#45; `*`, `/`, and `%`](https://stedolan.github.io/jq/manual/v1.5/#Multiplication\u0026#44;division\u0026#44;modulo\u0026#45;\u0026#42;\u0026#44;\u0026#47;\u0026#44;and\u0026#37;)                                                                                                                      | ○\u003csup\u003e*5\u003c/sup\u003e |\n| \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026bull; [`length`](https://stedolan.github.io/jq/manual/v1.5/#length)                                                                                                                                                                                                                                       | ○          |\n| \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026bull; [`keys`, `keys_unsorted`](https://stedolan.github.io/jq/manual/v1.5/#keys\u0026#44;keys\u0026#95;unsorted)                                                                                                                                                                                                    | ○          |\n| \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026bull; [`has(key)`](https://stedolan.github.io/jq/manual/v1.5/#has\u0026#40;key\u0026#41;)                                                                                                                                                                                                                           | ○          |\n| \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026bull; [`in`](https://stedolan.github.io/jq/manual/v1.5/#in)                                                                                                                                                                                                                                               | ○          |\n| \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026bull; [`path(path_expression)`](https://stedolan.github.io/jq/manual/v1.5/#path\u0026#40;path\u0026#95;expression\u0026#41;)                                                                                                                                                                                             | ○\u003csup\u003e*7\u003c/sup\u003e |\n| \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026bull; [`del(path_expression)`](https://stedolan.github.io/jq/manual/v1.5/#del\u0026#40;path\u0026#95;expression\u0026#41;)                                                                                                                                                                                               | ○          |\n| \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026bull; [`to_entries`, `from_entries`, `with_entries`](https://stedolan.github.io/jq/manual/v1.5/#to\u0026#95;entries\u0026#44;from\u0026#95;entries\u0026#44;with\u0026#95;entries)                                                                                                                                                 | ○          |\n| \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026bull; [`select(boolean_expression)`](https://stedolan.github.io/jq/manual/v1.5/#select\u0026#40;boolean\u0026#95;expression\u0026#41;)                                                                                                                                                                                   | ○          |\n| \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026bull; [`arrays`, `objects`, `iterables`, `booleans`, `numbers`, `normals`, `finites`, `strings`, `nulls`, `values`, `scalars`](https://stedolan.github.io/jq/manual/v1.5/#arrays\u0026#44;objects\u0026#44;iterables\u0026#44;booleans\u0026#44;numbers\u0026#44;normals\u0026#44;finites\u0026#44;strings\u0026#44;nulls\u0026#44;values\u0026#44;scalars) | ○          |\n| \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026bull; [`empty`](https://stedolan.github.io/jq/manual/v1.5/#empty)                                                                                                                                                                                                                                         | ○          |\n| \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026bull; [`error(message)`](https://stedolan.github.io/jq/manual/v1.5/#error\u0026#40;message\u0026#41;)                                                                                                                                                                                                               | ○          |\n| \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026bull; [`$__loc__`](https://stedolan.github.io/jq/manual/v1.5/#\u0026#36;\u0026#95;\u0026#95;loc\u0026#95;\u0026#95;)                                                                                                                                                                                                               | ×          |\n| \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026bull; [`map(x)`, `map_values(x)`](https://stedolan.github.io/jq/manual/v1.5/#map\u0026#40;x\u0026#41;\u0026#44;map\u0026#95;values\u0026#40;x\u0026#41;)                                                                                                                                                                                | ○          |\n| \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026bull; [`paths`, `paths(node_filter)`, `leaf_paths`](https://stedolan.github.io/jq/manual/v1.5/#paths\u0026#44;paths\u0026#40;node\u0026#95;filter\u0026#41;\u0026#44;leaf\u0026#95;paths)                                                                                                                                               | ○          |\n| \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026bull; [`add`](https://stedolan.github.io/jq/manual/v1.5/#add)                                                                                                                                                                                                                                             | ○          |\n| \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026bull; [`any`, `any(condition)`, `any(generator; condition)`](https://stedolan.github.io/jq/manual/v1.5/#any\u0026#44;any\u0026#40;condition\u0026#41;\u0026#44;any\u0026#40;generator\u0026#59;condition\u0026#41;)                                                                                                                          | ○          |\n| \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026bull; [`all`, `all(condition)`, `all(generator; condition)`](https://stedolan.github.io/jq/manual/v1.5/#all\u0026#44;all\u0026#40;condition\u0026#41;\u0026#44;all\u0026#40;generator\u0026#59;condition\u0026#41;)                                                                                                                          | ○          |\n| \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026bull; [`flatten`, `flatten(depth)`](https://stedolan.github.io/jq/manual/v1.5/#flatten\u0026#44;flatten\u0026#40;depth\u0026#41;)                                                                                                                                                                                        | ○          |\n| \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026bull; [`range(upto)`, `range(from;upto)` `range(from;upto;by)`](https://stedolan.github.io/jq/manual/v1.5/#range\u0026#40;upto\u0026#41;\u0026#44;range\u0026#40;from\u0026#59;upto\u0026#41;range\u0026#40;from\u0026#59;upto\u0026#59;by\u0026#41;)                                                                                                       | ○          |\n| \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026bull; [`floor`](https://stedolan.github.io/jq/manual/v1.5/#floor)                                                                                                                                                                                                                                         | ○          |\n| \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026bull; [`sqrt`](https://stedolan.github.io/jq/manual/v1.5/#sqrt)                                                                                                                                                                                                                                           | ○          |\n| \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026bull; [`tonumber`](https://stedolan.github.io/jq/manual/v1.5/#tonumber)                                                                                                                                                                                                                                   | ○          |\n| \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026bull; [`tostring`](https://stedolan.github.io/jq/manual/v1.5/#tostring)                                                                                                                                                                                                                                   | ○          |\n| \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026bull; [`type`](https://stedolan.github.io/jq/manual/v1.5/#type)                                                                                                                                                                                                                                           | ○          |\n| \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026bull; [`infinite`, `nan`, `isinfinite`, `isnan`, `isfinite`, `isnormal`](https://stedolan.github.io/jq/manual/v1.5/#infinite\u0026#44;nan\u0026#44;isinfinite\u0026#44;isnan\u0026#44;isfinite\u0026#44;isnormal)                                                                                                                  | ○          |\n| \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026bull; [`sort, sort_by(path_expression)`](https://stedolan.github.io/jq/manual/v1.5/#sort\u0026#44;sort\u0026#95;by\u0026#40;path\u0026#95;expression\u0026#41;)                                                                                                                                                                    | ○          |\n| \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026bull; [`group_by(path_expression)`](https://stedolan.github.io/jq/manual/v1.5/#group\u0026#95;by\u0026#40;path\u0026#95;expression\u0026#41;)                                                                                                                                                                                 | ○          |\n| \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026bull; [`min`, `max`, `min_by(path_exp)`, `max_by(path_exp)`](https://stedolan.github.io/jq/manual/v1.5/#min\u0026#44;max\u0026#44;min\u0026#95;by\u0026#40;path\u0026#95;exp\u0026#41;\u0026#44;max\u0026#95;by\u0026#40;path\u0026#95;exp\u0026#41;)                                                                                                            | ○          |\n| \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026bull; [`unique`, `unique_by(path_exp)`](https://stedolan.github.io/jq/manual/v1.5/#unique\u0026#44;unique\u0026#95;by\u0026#40;path\u0026#95;exp\u0026#41;)                                                                                                                                                                        | ○          |\n| \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026bull; [`reverse`](https://stedolan.github.io/jq/manual/v1.5/#reverse)                                                                                                                                                                                                                                     | ○          |\n| \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026bull; [`contains(element)`](https://stedolan.github.io/jq/manual/v1.5/#contains\u0026#40;element\u0026#41;)                                                                                                                                                                                                         | ○          |\n| \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026bull; [`indices(s)`](https://stedolan.github.io/jq/manual/v1.5/#indices\u0026#40;s\u0026#41;)                                                                                                                                                                                                                       | ○\u003csup\u003e*9\u003c/sup\u003e |\n| \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026bull; [`index(s)`, `rindex(s)`](https://stedolan.github.io/jq/manual/v1.5/#index\u0026#40;s\u0026#41;\u0026#44;rindex\u0026#40;s\u0026#41;)                                                                                                                                                                                        | ○          |\n| \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026bull; [`inside`](https://stedolan.github.io/jq/manual/v1.5/#inside)                                                                                                                                                                                                                                       | ○          |\n| \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026bull; [`startswith(str)`](https://stedolan.github.io/jq/manual/v1.5/#startswith\u0026#40;str\u0026#41;)                                                                                                                                                                                                             | ○          |\n| \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026bull; [`endswith(str)`](https://stedolan.github.io/jq/manual/v1.5/#endswith\u0026#40;str\u0026#41;)                                                                                                                                                                                                                 | ○          |\n| \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026bull; [`combinations`, `combinations(n)`](https://stedolan.github.io/jq/manual/v1.5/#combinations\u0026#44;combinations\u0026#40;n\u0026#41;)                                                                                                                                                                            | ○          |\n| \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026bull; [`ltrimstr(str)`](https://stedolan.github.io/jq/manual/v1.5/#ltrimstr\u0026#40;str\u0026#41;)                                                                                                                                                                                                                 | ○          |\n| \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026bull; [`rtrimstr(str)`](https://stedolan.github.io/jq/manual/v1.5/#rtrimstr\u0026#40;str\u0026#41;)                                                                                                                                                                                                                 | ○          |\n| \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026bull; [`explode`](https://stedolan.github.io/jq/manual/v1.5/#explode)                                                                                                                                                                                                                                     | ○          |\n| \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026bull; [`implode`](https://stedolan.github.io/jq/manual/v1.5/#implode)                                                                                                                                                                                                                                     | ○          |\n| \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026bull; [`split`](https://stedolan.github.io/jq/manual/v1.5/#split)                                                                                                                                                                                                                                         | ○          |\n| \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026bull; [`join(str)`](https://stedolan.github.io/jq/manual/v1.5/#join\u0026#40;str\u0026#41;)                                                                                                                                                                                                                         | ○          |\n| \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026bull; [`ascii_downcase`, `ascii_upcase`](https://stedolan.github.io/jq/manual/v1.5/#ascii\u0026#95;downcase\u0026#44;ascii\u0026#95;upcase)                                                                                                                                                                              | ○          |\n| \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026bull; [`while(cond; update)`](https://stedolan.github.io/jq/manual/v1.5/#while\u0026#40;cond\u0026#59;update\u0026#41;)                                                                                                                                                                                                  | ○          |\n| \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026bull; [`until(cond; next)`](https://stedolan.github.io/jq/manual/v1.5/#until\u0026#40;cond\u0026#59;next\u0026#41;)                                                                                                                                                                                                      | ○          |\n| \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026bull; [`recurse(f)`, `recurse`, `recurse(f; condition)`, `recurse_down`](https://stedolan.github.io/jq/manual/v1.5/#recurse\u0026#40;f\u0026#41;\u0026#44;recurse\u0026#44;recurse\u0026#40;f\u0026#59;condition\u0026#41;\u0026#44;recurse\u0026#95;down)                                                                                             | ○          |\n| \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026bull; [`..`](https://stedolan.github.io/jq/manual/v1.5/#\u0026#46;\u0026#46;)                                                                                                                                                                                                                                       | ○          |\n| \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026bull; [`env`](https://stedolan.github.io/jq/manual/v1.5/#env)                                                                                                                                                                                                                                             | ○\u003csup\u003e*6\u003c/sup\u003e |\n| \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026bull; [`transpose`](https://stedolan.github.io/jq/manual/v1.5/#transpose)                                                                                                                                                                                                                                 | ○          |\n| \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026bull; [`bsearch(x)`](https://stedolan.github.io/jq/manual/v1.5/#bsearch\u0026#40;x\u0026#41;)                                                                                                                                                                                                                       | ×          |\n| \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026bull; [String interpolation \u0026#45; `\\(foo)`](https://stedolan.github.io/jq/manual/v1.5/#Stringinterpolation\u0026#45;\u0026#92;\u0026#40;foo\u0026#41;)                                                                                                                                                                        | ○          |\n| \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026bull; [Convert to\u0026#47;from JSON](https://stedolan.github.io/jq/manual/v1.5/#Convertto\u0026#47;fromJSON)                                                                                                                                                                                                       | ○          |\n| \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026bull; [Format strings and escaping](https://stedolan.github.io/jq/manual/v1.5/#Formatstringsandescaping)                                                                                                                                                                                                  | ○          |\n| \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026bull; [Dates](https://stedolan.github.io/jq/manual/v1.5/#Dates)                                                                                                                                                                                                                                           | ×          |\n| [Conditionals and Comparisons](https://stedolan.github.io/jq/manual/v1.5/#ConditionalsandComparisons)                                                                                                                                                                                                                              | ○          |\n| \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026bull; [`==`, `!=`](https://stedolan.github.io/jq/manual/v1.5/#\u0026#61;\u0026#61;\u0026#44;\u0026#33;\u0026#61;)                                                                                                                                                                                                                  | ○          |\n| \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026bull; [if\u0026#45;then\u0026#45;else](https://stedolan.github.io/jq/manual/v1.5/#if\u0026#45;then\u0026#45;else)                                                                                                                                                                                                             | ○          |\n| \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026bull; [`\u003e, \u003e=, \u003c=, \u003c`](https://stedolan.github.io/jq/manual/v1.5/#\u0026#62;\u0026#44;\u0026#62;\u0026#61;\u0026#44;\u0026#60;\u0026#61;\u0026#44;\u0026#60;)                                                                                                                                                                                          | ○          |\n| \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026bull; [and\u0026#47;or\u0026#47;not](https://stedolan.github.io/jq/manual/v1.5/#and\u0026#47;or\u0026#47;not)                                                                                                                                                                                                                 | ○          |\n| \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026bull; [Alternative operator \u0026#45; `//`](https://stedolan.github.io/jq/manual/v1.5/#Alternativeoperator\u0026#45;\u0026#47;\u0026#47;)                                                                                                                                                                                    | ○          |\n| \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026bull; [try\u0026#45;catch](https://stedolan.github.io/jq/manual/v1.5/#try\u0026#45;catch)                                                                                                                                                                                                                           | ○\u003csup\u003e*1\u003c/sup\u003e |\n| \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026bull; [Breaking out of control structures](https://stedolan.github.io/jq/manual/v1.5/#Breakingoutofcontrolstructures)                                                                                                                                                                                     | ○\u003csup\u003e*2\u003c/sup\u003e |\n| \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026bull; [`?` operator](https://stedolan.github.io/jq/manual/v1.5/#\u0026#63;operator)                                                                                                                                                                                                                            | ○          |\n| [Regular expressions \u0026#40;PCRE\u0026#41;](https://stedolan.github.io/jq/manual/v1.5/#Regularexpressions\u0026#40;PCRE\u0026#41;)                                                                                                                                                                                                                  | ○          |\n| \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026bull; [`test(val)`, `test(regex; flags)`](https://stedolan.github.io/jq/manual/v1.5/#test\u0026#40;val\u0026#41;\u0026#44;test\u0026#40;regex\u0026#59;flags\u0026#41;)                                                                                                                                                                 | ○          |\n| \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026bull; [`match(val)`, `match(regex; flags)`](https://stedolan.github.io/jq/manual/v1.5/#match\u0026#40;val\u0026#41;\u0026#44;match\u0026#40;regex\u0026#59;flags\u0026#41;)                                                                                                                                                             | ○          |\n| \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026bull; [`capture(val)`, `capture(regex; flags)`](https://stedolan.github.io/jq/manual/v1.5/#capture\u0026#40;val\u0026#41;\u0026#44;capture\u0026#40;regex\u0026#59;flags\u0026#41;)                                                                                                                                                     | ○          |\n| \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026bull; [`scan(regex)`, `scan(regex; flags)`](https://stedolan.github.io/jq/manual/v1.5/#scan\u0026#40;regex\u0026#41;\u0026#44;scan\u0026#40;regex\u0026#59;flags\u0026#41;)                                                                                                                                                             | ○          |\n| \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026bull; [`split(regex; flags)`](https://stedolan.github.io/jq/manual/v1.5/#split\u0026#40;regex\u0026#59;flags\u0026#41;)                                                                                                                                                                                                  | ○          |\n| \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026bull; [`splits(regex)`, `splits(regex; flags)`](https://stedolan.github.io/jq/manual/v1.5/#splits\u0026#40;regex\u0026#41;\u0026#44;splits\u0026#40;regex\u0026#59;flags\u0026#41;)                                                                                                                                                     | ○          |\n| \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026bull; [`sub(regex; tostring)` `sub(regex; string; flags)`](https://stedolan.github.io/jq/manual/v1.5/#sub\u0026#40;regex\u0026#59;tostring\u0026#41;sub\u0026#40;regex\u0026#59;string\u0026#59;flags\u0026#41;)                                                                                                                             | ○          |\n| \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026bull; [`gsub(regex; string)`, `gsub(regex; string; flags)`](https://stedolan.github.io/jq/manual/v1.5/#gsub\u0026#40;regex\u0026#59;string\u0026#41;\u0026#44;gsub\u0026#40;regex\u0026#59;string\u0026#59;flags\u0026#41;)                                                                                                                       | ○          |\n| [Advanced features](https://stedolan.github.io/jq/manual/v1.5/#Advancedfeatures)                                                                                                                                                                                                                                                   | ○          |\n| \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026bull; [Variables](https://stedolan.github.io/jq/manual/v1.5/#Variables)                                                                                                                                                                                                                                   | ○\u003csup\u003e*11\u003c/sup\u003e |\n| \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026bull; [Destructuring Alternative Operator: ?//](https://stedolan.github.io/jq/manual/v1.6/#DestructuringAlternativeOperator:?//)                                                                                                                                                                          | ✕ (#44)    |\n| \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026bull; [Defining Functions](https://stedolan.github.io/jq/manual/v1.5/#DefiningFunctions)                                                                                                                                                                                                                  | ○\u003csup\u003e*3\u003c/sup\u003e |\n| \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026bull; [Reduce](https://stedolan.github.io/jq/manual/v1.5/#Reduce)                                                                                                                                                                                                                                         | ○          |\n| \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026bull; [`limit(n; exp)`](https://stedolan.github.io/jq/manual/v1.5/#limit\u0026#40;n\u0026#59;exp\u0026#41;)                                                                                                                                                                                                              | ○          |\n| \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026bull; [`first(expr)`, `last(expr)`, `nth(n; expr)`](https://stedolan.github.io/jq/manual/v1.5/#first\u0026#40;expr\u0026#41;\u0026#44;last\u0026#40;expr\u0026#41;\u0026#44;nth\u0026#40;n\u0026#59;expr\u0026#41;)                                                                                                                                    | ○          |\n| \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026bull; [`first`, `last`, `nth(n)`](https://stedolan.github.io/jq/manual/v1.5/#first\u0026#44;last\u0026#44;nth\u0026#40;n\u0026#41;)                                                                                                                                                                                           | ○          |\n| \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026bull; [`foreach`](https://stedolan.github.io/jq/manual/v1.5/#foreach)                                                                                                                                                                                                                                     | ○          |\n| \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026bull; [Recursion](https://stedolan.github.io/jq/manual/v1.5/#Recursion)                                                                                                                                                                                                                                   | ○          |\n| \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026bull; [Generators and iterators](https://stedolan.github.io/jq/manual/v1.5/#Generatorsanditerators)                                                                                                                                                                                                       | ○          |\n| [Math](https://stedolan.github.io/jq/manual/v1.5/#Math)                                                                                                                                                                                                                                                                            | △          |\n| [I\u0026#47;O](https://stedolan.github.io/jq/manual/v1.5/#I\u0026#47;O)                                                                                                                                                                                                                                                                      | N/A        |\n| \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026bull; [`input`](https://stedolan.github.io/jq/manual/v1.5/#input)                                                                                                                                                                                                                                         | N/A        |\n| \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026bull; [`inputs`](https://stedolan.github.io/jq/manual/v1.5/#inputs)                                                                                                                                                                                                                                       | N/A        |\n| \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026bull; [`debug`](https://stedolan.github.io/jq/manual/v1.5/#debug)                                                                                                                                                                                                                                         | N/A        |\n| \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026bull; [`input_filename`](https://stedolan.github.io/jq/manual/v1.5/#input\u0026#95;filename)                                                                                                                                                                                                                   | N/A        |\n| \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026bull; [`input_line_number`](https://stedolan.github.io/jq/manual/v1.5/#input\u0026#95;line\u0026#95;number)                                                                                                                                                                                                         | N/A        |\n| [Streaming](https://stedolan.github.io/jq/manual/v1.5/#Streaming)                                                                                                                                                                                                                                                                  | N/A        |\n| \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026bull; [`truncate_stream(stream_expression)`](https://stedolan.github.io/jq/manual/v1.5/#truncate\u0026#95;stream\u0026#40;stream\u0026#95;expression\u0026#41;)                                                                                                                                                               | N/A        |\n| \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026bull; [`fromstream(stream_expression)`](https://stedolan.github.io/jq/manual/v1.5/#fromstream\u0026#40;stream\u0026#95;expression\u0026#41;)                                                                                                                                                                             | N/A        |\n| \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026bull; [`tostream`](https://stedolan.github.io/jq/manual/v1.5/#tostream)                                                                                                                                                                                                                                   | N/A        |\n| [Assignment](https://stedolan.github.io/jq/manual/v1.5/#Assignment)                                                                                                                                                                                                                                                                | ○          |\n| \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026bull; [`=`](https://stedolan.github.io/jq/manual/v1.5/#\u0026#61;)                                                                                                                                                                                                                                             | ○          |\n| \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026bull; [`ǀ=`](https://stedolan.github.io/jq/manual/v1.5/#\u0026#124;\u0026#61;)                                                                                                                                                                                                                                      | ○\u003csup\u003e*8\u003c/sup\u003e |\n| \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026bull; [`+=`, `-=`, `*=`, `/=`, `%=`, `//=`](https://stedolan.github.io/jq/manual/v1.5/#\u0026#43;\u0026#61;\u0026#44;\u0026#45;\u0026#61;\u0026#44;\u0026#42;\u0026#61;\u0026#44;\u0026#47;\u0026#61;\u0026#44;\u0026#37;\u0026#61;\u0026#44;\u0026#47;\u0026#47;\u0026#61;)                                                                                                                        | ○          |\n| \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026bull; [Complex assignments](https://stedolan.github.io/jq/manual/v1.5/#Complexassignments)                                                                                                                                                                                                                | ○          |\n| [Modules](https://stedolan.github.io/jq/manual/v1.5/#Modules)                                                                                                                                                                                                                                                                      | △          |\n| \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026bull; [`import RelativePathString as NAME [\u003cmetadata\u003e];`](https://stedolan.github.io/jq/manual/v1.5/#importRelativePathStringasNAME\u0026#91;\u0026#60;metadata\u0026#62;\u0026#93;\u0026#59;)                                                                                                                                     | ○          |\n| \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026bull; [`include RelativePathString [\u003cmetadata\u003e];`](https://stedolan.github.io/jq/manual/v1.5/#includeRelativePathString\u0026#91;\u0026#60;metadata\u0026#62;\u0026#93;\u0026#59;)                                                                                                                                                 | ○          |\n| \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026bull; [`import RelativePathString as $NAME [\u003cmetadata\u003e];`](https://stedolan.github.io/jq/manual/v1.5/#importRelativePathStringas\u0026#36;NAME\u0026#91;\u0026#60;metadata\u0026#62;\u0026#93;\u0026#59;)                                                                                                                               | ○          |\n| \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026bull; [`module \u003cmetadata\u003e;`](https://stedolan.github.io/jq/manual/v1.5/#module\u0026#60;metadata\u0026#62;\u0026#59;)                                                                                                                                                                                                    | ○          |\n| \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026bull; [`modulemeta`](https://stedolan.github.io/jq/manual/v1.5/#modulemeta)                                                                                                                                                                                                                               | ×          |\n\n\u003c/details\u003e\n\n### Known Compatibility Issues / Differences\n\n#### Category: BUG\n\n\u003cdetails\u003e\n\u003csummary\u003e(*11) Operator Precedences in \u003ccode\u003e1 + 3 as $a | ($a * 2)\u003c/code\u003e\u003c/summary\u003e\n  \n##### Description\n\nThe presence of `as $a` affects precedence of `|` and other operators in jq:\n\n```console\n$ jq -n '1 + 3 | (. * 2)' # interpreted as (1 + 3) | (. * 2)\n8\n$ jq -n '1 + 3 as $a | ($a * 2)' # interpreted as 1 + (3 as $a | ($a * 2))\n7\n```\n\nwhereas jackson-jq consistently interprets them as `(1 + 3)` whether `as $a` is used or not:\n\n```console\n$ java -jar jackson-jq-cli-1.3.0.jar -n '1 + 3 | (. * 2)' # interpreted as (1 + 3) | (. * 2)\n8\n$ java -jar jackson-jq-cli-1.3.0.jar -n '1 + 3 as $a | ($a * 2)' # interpreted as (1 + 3) as $a | ($a * 2)\n8\n```\n\n##### Examples\n\n```console\n$ jq -n '1 + 3 as $a | ($a * 2)' # interpreted as 1 + (3 as $a | ($a * 2))\n7\n$ java -jar jackson-jq-cli-1.3.0.jar -n '1 + 3 as $a | ($a * 2)' # interpreted as (1 + 3) as $a | ($a * 2)\n8\n```\n\n##### Workaround\n\nUse explicit parentheses.\n\n##### Links\n\n* [jackson-jq#72](https://github.com/eiiches/jackson-jq/issues/72)\n\n\u003c/details\u003e\n\n\n\u003cdetails\u003e\n\u003csummary\u003e(*3) Multiple functions with the same name in the same scope\u003c/summary\u003e\n\n##### Description\n\nIf the function with the same is defined more than once at the same scope, jackson-jq uses the last one.\n\n##### Examples\n\n```console\n$ jq -n 'def f: 1; def g: f; def f: 2; g'\n1\n$ java -jar jackson-jq-cli-1.3.0.jar -n 'def f: 1; def g: f; def f: 2; g'\n2\n```\n\n##### Workaround\n\nAvoid using the duplicate function name.\n\n```console\n$ java -jar jackson-jq-cli-1.3.0.jar -n 'def f1: 1; def g: f1; def f2: 2; g'\n1\n```\n\n\u003c/details\u003e\n\n\n#### Category: BY DESIGN\n\n\u003cdetails\u003e\n\u003csummary\u003e(*1) Error Message Wording\u003c/summary\u003e\n\n##### Description\n\nError messages differ between jq and jackson-jq and they also tend to change between versions.\n\n##### Workaround\n\nNone. This is by design and will not be fixed.\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e(*6) \u003ccode\u003eenv/0\u003c/code\u003e is not available by default.\u003c/summary\u003e\n\n##### Description\n\n`env/0` is not available by default for security reasons and must be added manually to the scope.\n\n##### Workaround\n\nAdd `env/0` manually into the scope:\n\n```java\nSCOPE.addFunction(\"env\", 0, new EnvFunction())\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e(*4) Field Ordering in JSON Object\u003c/summary\u003e\n\n##### Description\n  \nThe order of the keys in JSON is not preserved. It was a design decision but we are slowly trying to fix this in order to improve the compatibility with jq.\n\n##### Workaround\n\nNone. Use array if the order is important.\n\n\u003c/details\u003e\n  \n\u003cdetails\u003e\n\u003csummary\u003e(*5) \u003ccode\u003e0 / 0\u003c/code\u003e is an error in jackson-jq.\u003c/summary\u003e\n\n##### Description\n\njq evaluates `0 / 0`, if hard-coded, to NaN without any errors, whereas `0 | 0 / .` results in a zero-division error. jackson-jq always raises an error in both cases.\n\n##### Examples\n\n```console\n$ jq -n '0 / 0'\nnull\n$ jq -n '10 / 0'\njq: error: Division by zero? at \u003ctop-level\u003e, line 1:\n10 / 0\njq: 1 compile error\n$ jq '. / 0' \u003c\u003c\u003c 0\njq: error (at \u003cstdin\u003e:1): number (0) and number (0) cannot be divided because the divisor is zero\n$ java -jar jackson-jq-cli-1.3.0.jar -n '0 / 0'\njq: error: number (0) and number (0) cannot be divided because the divisor is zero\n```\n\n##### Workaround\n\nIf you need NaN, use `nan` instead of `0 / 0`.\n  \n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e(*8) \u003ccode\u003e... |= empty\u003c/code\u003e is an error in jackson-jq.\u003c/summary\u003e\n\n##### Description\n\n`.foo |= empty` always throws an error in jackson-jq instead of producing an unexpected result. jq-1.5 and jq-1.6 respectively produces a different and incorrect result for `[1,2,3] | ((.[] | select(. \u003e 1)) |= empty)`. [jq#897](https://github.com/stedolan/jq/issues/897) says \"empty in the RHS is undefined\". You can still use `_modify/2` directly if you really want to emulate the exact jq-1.5 or jq-1.6 behavior.\n\n##### Examples\n\n```console\n$ jq-1.6 -n '[1,2,3] | ((.[] | select(. \u003e 1)) |= empty)'\n[\n  1,\n  3\n]\n$ jq-1.5 -n '[1,2,3] | ((.[] | select(. \u003e 1)) |= empty)'\nnull\n$ jq-1.2 -n '[1,2,3] | ((.[] | select(. \u003e 1)) |= empty)'\n[\n  1,\n  2,\n  3\n]\n$ java -jar jackson-jq-cli-1.3.0.jar --jq 1.6 -n '[1,2,3] | ((.[] | select(. \u003e 1)) |= empty)'\njq: error: `|= empty` is undefined. See https://github.com/stedolan/jq/issues/897\n$ java -jar jackson-jq-cli-1.3.0.jar --jq 1.5 -n '[1,2,3] | ((.[] | select(. \u003e 1)) |= empty)'\njq: error: `|= empty` is undefined. See https://github.com/stedolan/jq/issues/897\n```\n\n##### Workaround\n\nYou can use `_modify/2` if you really want to the original behavior.\n\n```console\n$ java -jar jackson-jq-cli-1.3.0.jar --jq 1.6 -n '[1,2,3] | _modify((.[] | select(. \u003e 1)); empty)'\n[ 1, 3 ]\n$ java -jar jackson-jq-cli-1.3.0.jar --jq 1.5 -n '[1,2,3] | _modify((.[] | select(. \u003e 1)); empty)'\nnull\n```\n\n\u003c/details\u003e\n  \n\u003cdetails\u003e\n\u003csummary\u003e(*7) Variables don't carry path information even in jq 1.5 compat mode.\u003c/summary\u003e\n\n##### Description\n  \n`path(.foo as $a | $a)` always throws an error as $variables in jackson-jq do not carry path information like jq-1.5 accidentally? did. The behavior is fixed in jq-1.6 whose [documentation](https://stedolan.github.io/jq/manual/v1.6/#Assignment) explicitly states them as \"not a valid or useful path expression\". So, I dicided not to implement it even in jq-1.5 compatible mode.\n\n##### Examples\n  \njq 1.5\n\n```console\n$ jq-1.5 -c 'path(.foo as $a | $a)' \u003c\u003c\u003c '{\"foo\": 1}'\n[\"foo\"]\n$ java -jar jackson-jq-cli-1.3.0.jar --jq 1.5 -c 'path(.foo as $a | $a)' \u003c\u003c\u003c '{\"foo\": 1}'\njq: error: Invalid path expression with result 1\n```\n\njq 1.6\n\n```console\n$ jq-1.6 -c 'path(.foo as $a | $a)' \u003c\u003c\u003c '{\"foo\": 1}'\njq: error (at \u003cstdin\u003e:1): Invalid path expression with result 1\n$ java -jar jackson-jq-cli-1.3.0.jar --jq 1.6 -c 'path(.foo as $a | $a)' \u003c\u003c\u003c '{\"foo\": 1}'\njq: error: Invalid path expression with result 1\n```\n\n##### Workaround\n\nNone\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e(*2) \u003ccode\u003etry (break $label) catch .\u003c/code\u003e always produces \u003ccode\u003e{\"__jq\": 0}\u003c/code\u003e.\u003c/summary\u003e\n\n##### Description\n\n\u003ccode\u003etry (break $label) catch .\u003c/code\u003e always produces \u003ccode\u003e{\"__jq\": 0}\u003c/code\u003e in jackson-jq, while `__jq` should contain the index of the label the `break` statement jumps to.\n\n##### Examples\n\n```console\n$ jq -n 'label $a | label $b | try (break $b) catch .'\n{\n  \"__jq\": 1\n}\n$ java -jar jackson-jq-cli-1.3.0.jar -n 'label $a | label $b | try (break $b) catch .'\n{\n  \"__jq\" : 0\n}\n```\n\n##### Workaround\n\nNone. Tell us your use case if you need this feature.\n\n\u003c/details\u003e\n\n#### Category: BUGFIX\n\n\u003cdetails\u003e\n\u003csummary\u003e(*9) \u003ccode\u003eindices(\"\")\u003c/code\u003e returns \u003ccode\u003e[]\u003c/code\u003e (empty array) in jackson-jq.\u003c/summary\u003e\n\n##### Description\n\n`indices/1` implementation in jq-1.5 and jq-1.6 had a bug that caused `indices(\"\")` to end up in infinite loop which eventually leads to OOM. The bug is [fixed](https://github.com/stedolan/jq/commit/2660b04a731568c54eb4b91fe811d81cbbf3470b) and likely to be in jq-1.7 (not released yet). jackson-jq chose not to simulate this bug.\n\n##### Examples\n  \n```console\n$ jq-1.5 -n '\"x\" | indices(\"\")' # stuck in infinite loop\n^C\n$ jq-1.6 -n '\"x\" | indices(\"\")' # stuck in infinite loop\n^C\n$ jq-1.6-83-gb52fc10 -n '\"x\" | indices(\"\")'\n[]\n$ java -jar jackson-jq-cli-1.3.0.jar -n '\"x\" | indices(\"\")'\n[ ]\n```\n\n\u003c/details\u003e\n\nUsing jackson-jq/extras module\n------------------------------\n\nThe `jackson-jq/extras` module is a jq module that provides some useful functions that do not exist in jq.\n\nTo use this module, you need to add the following Maven dependency and set `BuiltinModuleLoader` (see [jackson-jq/src/test/java/examples/Usage.java](jackson-jq/src/test/java/examples/Usage.java)) to the scope.\n\n```xml\n\u003cdependency\u003e\n\t\u003cgroupId\u003enet.thisptr\u003c/groupId\u003e\n\t\u003cartifactId\u003ejackson-jq-extra\u003c/artifactId\u003e\n\t\u003cversion\u003e1.3.0\u003c/version\u003e\n\u003c/dependency\u003e\n```\n\nNow, you can import the module in jq:\n\n```jq\nimport \"jackson-jq/extras\" as extras;\n\nextras::uuid4\n```\n\nFor a historical reason, adding the Maven dependency also makes the functions directly available to jq. This behavior is deprecated and will be removed at some point in the future.\n\n\u003cdetails\u003e\n\u003csummary\u003eList of Functions\u003c/summary\u003e\n\n#### uuid4/0\n\n - `jackson-jq -n 'uuid4'` #=\u003e `\"a69cf146-f40e-42e1-ae88-12590bdae947\"`\n\n#### random/0\n\n - `jackson-jq -n 'random'` #=\u003e `0.43292159535427466`\n\n#### timestamp/0, strptime/{1, 2}, strftime/{1, 2}\n\n - `jackson-jq -n 'timestamp'` #=\u003e `1477162056362`\n - `jackson-jq -n '1477162342372 | strftime(\"yyyy-MM-dd HH:mm:ss.SSSXXX\")'` #=\u003e `\"2016-10-23 03:52:22.372+09:00\"`\n - `jackson-jq -n '1477162342372 | strftime(\"yyyy-MM-dd HH:mm:ss.SSSXXX\"; \"UTC\")'` #=\u003e `\"2016-10-22 18:52:22.372Z\"`\n - `jackson-jq -n '\"2016-10-23 03:52:22.372+09:00\" | strptime(\"yyyy-MM-dd HH:mm:ss.SSSXXX\")'` #=\u003e `1477162342372`\n - `jackson-jq -n '\"2016-10-22 18:52:22.372\" | strptime(\"yyyy-MM-dd HH:mm:ss.SSS\"; \"UTC\")'` #=\u003e `1477162342372`\n\n#### uriparse/0\n\n - `jackson-jq -n '\"http://user@www.example.com:8080/index.html?foo=1\u0026bar=%20#hash\" | uriparse'` #=\u003e\n \n   ```json\n   {\n     \"scheme\" : \"http\",\n     \"user_info\" : \"user\",\n     \"raw_user_info\" : \"user\",\n     \"host\" : \"www.example.com\",\n     \"port\" : 8080,\n     \"authority\" : \"user@www.example.com:8080\",\n     \"raw_authority\" : \"user@www.example.com:8080\",\n     \"path\" : \"/index.html\",\n     \"raw_path\" : \"/index.html\",\n     \"query\" : \"foo=1\u0026bar= \",\n     \"raw_query\" : \"foo=1\u0026bar=%20\",\n     \"query_obj\" : {\n       \"bar\" : \" \",\n       \"foo\" : \"1\"\n     },\n     \"fragment\" : \"hash\",\n     \"raw_fragment\" : \"hash\"\n   }\n   ```\n\n#### uridecode/0\n\n - `jackson-jq -n '\"%66%6f%6f\" | uridecode'` #=\u003e `\"foo\"`\n\n#### hostname/0\n\n - `jackson-jq -n 'hostname'` #=\u003e `\"jenkins-slave01\"`\n\n\u003c/details\u003e\n\nContributing\n------------\n\n* If you are planning to send a PR and the change is not small, please open an issue and discuss it with the authors first.\n* Other than bug reports or patches, documentation improvements (including small grammatical or wording corrections) would be greatly appreciated.\n\nLicense\n-------\n\nThis software is licensed under Apache Software License, Version 2.0, with some exceptions:\n\n - [jackson-jq/src/test/resources](jackson-jq/src/test/resources) contains test cases from [stedolan/jq](https://github.com/stedolan/jq).\n - [jackson-jq/src/main/resources/net/thisptr/jackson/jq/jq.json](jackson-jq/src/main/resources/net/thisptr/jackson/jq/jq.json) contains function definitions extracted from [stedolan/jq](https://github.com/stedolan/jq).\n\nSee [COPYING](COPYING) for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feiiches%2Fjackson-jq","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Feiiches%2Fjackson-jq","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feiiches%2Fjackson-jq/lists"}