
Security News
Meet Socket at Black Hat and DEF CON 2025 in Las Vegas
Meet Socket at Black Hat & DEF CON 2025 for 1:1s, insider security talks at Allegiant Stadium, and a private dinner with top minds in software supply chain security.
json-query-engine
Advanced tools
JSONQueryEngine uses the basis of jsonpath
and paginator
to crawl sweetly into an object.
The search criteria must be a valid JSONPath (XPath for JSON) query.
Given the input
{
"store": {
"book": [
{
"category": "reference",
"author": "Nigel Rees",
"title": "Sayings of the Century",
"price": 8.95
}, {
"category": "fiction",
"author": "Evelyn Waugh",
"title": "Sword of Honour",
"price": 12.99
}, {
"category": "fiction",
"author": "Herman Melville",
"title": "Moby Dick",
"isbn": "0-553-21311-3",
"price": 8.99
}, {
"category": "fiction",
"author": "J. R. R. Tolkien",
"title": "The Lord of the Rings",
"isbn": "0-395-19395-8",
"price": 22.99
}
],
"bicycle": {
"color": "red",
"price": 19.95
}
}
}
var JSONQueryEngine = require('json-query-engine');
var jqe = JSONQueryEngine();
jqe.file('./example.json');
jqe.execute('$.store.book[*]').execute('$..author',2,2).file('./base.json');
var modified_result = result.modify(function(item){
return item+' modified';
});
Outputs
{
object: [ 'Herman Melville', 'J. R. R. Tolkien' ],
info: {
total_pages: 2,
pages: 2,
current_page: 2,
first_page: 1,
last_page: 2,
previous_page: 1,
next_page: 3,
has_previous_page: true,
has_next_page: false,
total_results: 4,
first_result: 2,
last_result: 3,
per_page: 2,
found_results: 4
}
}
JSONQueryEngine([input]): creates a new data source
setObject(input): feeds JSONQueryEngine with a Javascript object or JSON string
file(path): loads an object from the content of a file
save(path): saves result set to a file
execute(query,[limit,[offset]]): returns a JSONQueryResult
get(index): returns the element in the index
position, or the first or the last elements if the index
is out of range
first(): returns the first element
last(): returns the last element
all(): returns the all the elements in the result set
each(callback([item,index])): iterates through the result set, passes the result item and the index to the provided callback. Returning false in the callback will stop the loop.
modify(callback([item,index])): iterates through the result set, passes the result item and the index to the provided callback. The returning value of the callback will replace the item (returning itself keeps the item intact). Returns the resulting result set.
FAQs
Query and paginate a JSON object with JSONPath
We found that json-query-engine demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Meet Socket at Black Hat & DEF CON 2025 for 1:1s, insider security talks at Allegiant Stadium, and a private dinner with top minds in software supply chain security.
Security News
CAI is a new open source AI framework that automates penetration testing tasks like scanning and exploitation up to 3,600× faster than humans.
Security News
Deno 2.4 brings back bundling, improves dependency updates and telemetry, and makes the runtime more practical for real-world JavaScript projects.