Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jmespath/jmespath.js
Javascript implementation of JMESPath, a query language for JSON
https://github.com/jmespath/jmespath.js
Last synced: about 2 months ago
JSON representation
Javascript implementation of JMESPath, a query language for JSON
- Host: GitHub
- URL: https://github.com/jmespath/jmespath.js
- Owner: jmespath
- License: other
- Created: 2014-04-18T16:36:03.000Z (over 10 years ago)
- Default Branch: master
- Last Pushed: 2023-12-07T10:42:27.000Z (10 months ago)
- Last Synced: 2024-07-18T14:04:23.339Z (2 months ago)
- Language: JavaScript
- Homepage: http://jmespath.org
- Size: 192 KB
- Stars: 762
- Watchers: 15
- Forks: 93
- Open Issues: 58
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# jmespath.js
[![Build Status](https://travis-ci.org/jmespath/jmespath.js.png?branch=master)](https://travis-ci.org/jmespath/jmespath.js)
jmespath.js is a javascript implementation of JMESPath,
which is a query language for JSON. It will take a JSON
document and transform it into another JSON document
through a JMESPath expression.Using jmespath.js is really easy. There's a single function
you use, `jmespath.search`:```
> var jmespath = require('jmespath');
> jmespath.search({foo: {bar: {baz: [0, 1, 2, 3, 4]}}}, "foo.bar.baz[2]")
2
```In the example we gave the ``search`` function input data of
`{foo: {bar: {baz: [0, 1, 2, 3, 4]}}}` as well as the JMESPath
expression `foo.bar.baz[2]`, and the `search` function evaluated
the expression against the input data to produce the result ``2``.The JMESPath language can do a lot more than select an element
from a list. Here are a few more examples:```
> jmespath.search({foo: {bar: {baz: [0, 1, 2, 3, 4]}}}, "foo.bar")
{ baz: [ 0, 1, 2, 3, 4 ] }> jmespath.search({"foo": [{"first": "a", "last": "b"},
{"first": "c", "last": "d"}]},
"foo[*].first")
[ 'a', 'c' ]> jmespath.search({"foo": [{"age": 20}, {"age": 25},
{"age": 30}, {"age": 35},
{"age": 40}]},
"foo[?age > `30`]")
[ { age: 35 }, { age: 40 } ]
```## More Resources
The example above only show a small amount of what
a JMESPath expression can do. If you want to take a
tour of the language, the *best* place to go is the
[JMESPath Tutorial](http://jmespath.org/tutorial.html).One of the best things about JMESPath is that it is
implemented in many different programming languages including
python, ruby, php, lua, etc. To see a complete list of libraries,
check out the [JMESPath libraries page](http://jmespath.org/libraries.html).And finally, the full JMESPath specification can be found
on the [JMESPath site](http://jmespath.org/specification.html).