The JMESPath specification is implemented in various 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 and as reported by their respective authors.

  • Fully compliant: means compliant with respect to the original version of JMESPath.
  • JMESPath Community: means compliant with respect to the new JMESPath Community specifications.

Language Implementations

Language Name Compliance Level
C++ jmespath.cpp Fully compliant
Elixir ex-jmes Fully compliant
Go go-jmespath
Java jmespath-java Fully compliant
JavaScript jmespath.js Fully compliant
Lua jmespath.lua Fully compliant
.NET jmespath.net
PHP jmespath.php Fully compliant
Python python-jmespath
Ruby jmespath.rb Fully compliant
Rust jmespath.rs Fully compliant
TypeScript typescript-jmespath

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.