[0] https://docs.aws.amazon.com/cli/latest/userguide/controlling...
I have been maintaining https://github.com/kislyuk/yq, which wraps jq with a transcoder for YAML and XML.
jmespath is more limited, but is well specified and easier to fit in your head. It's also much more appropriate for using as a library from other projects, since it has clean implementations in many languages. It's also an advantage in this case that it can't do everything, since you can more realistically provide untrusted user input.
jmespath's default (Go) CLI isn't as fully featured as jq, unfortunately.
I had never heard of jl before, but I've recently compiled an "awesome" collection of jq tools, libraries and use-cases at https://github.com/fiatjaf/awesome-jq that may be worth checking out.
I've also started using it just to get colorized/formatted output from curl or a local json file.
cat file.json | jqI love jq, and use it more often than JMESPATH. However, recently I've noticed that I arrive at "the solution" I need more quickly with JMESPATH.
In retrospect, JMESPATH's documentation and examples have been more useful for me than jq's (docs/examples).