JMESPath LibrariesΒΆ

The JMESPath specification is implemented in varioues languages. Each list below shows JMESPath libraries as well as the compliance level. The compliance level is based on which compliance tests the library can pass.


GorillaStack maintains a fork in JavaScript which is divergent from the original specification. Below, we have provided links to the GorillaStack versions where approriate or the original implementations.

Language Name Compliance Level Variant
Python Fully compliant Original
PHP jmespath.php Fully compliant Original
Javascript jmespath.js Fully compliant w/ GorillaStack additions GorillaStack
Ruby jmespath.rb Fully compliant Original
Lua jmespath.lua Fully compliant Original
Go go-jmespath Fully compliant Original
Java jmespath-java Fully compliant Original
Rust Fully compliant Original
DotNet Fully compliant Original

In addition to the JMESPath libraries above, there are a number of miscellaneous JMESPath tools.

Tool Description
jmespath.terminal Provides a JMESPath interactive terminal that you can use to evaluate JMESpath expressions as you type. The README in the github repo shows GIFs of jpterm in action.
jp Provides a JMESPath command line interface called jp. This cross platform tool accepts JSON data through stdin or input files, and prints the result of evaluating the JMESPath expression to stdout. This is useful if you’re writing shell scripts that need to manipulate JSON data.