jqe

json-query-engine

Cleaver and simple engine to query over JSON and Javascript objects

Showing:

Popularity

Downloads/wk

9

GitHub Stars

0

Maintenance

Last Commit

5yrs ago

Contributors

0

Package

Dependencies

2

License

ISC

Type Definitions

Tree-Shakeable

No?

Categories

Readme

JSONQueryEngine

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.

Example

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';
});

console.log(modified_result);

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
  }
}

API reference:

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.

jsonpath package

paginator package

JSONPath

Rate & Review

Great Documentation0
Easy to Use0
Performant0
Highly Customizable0
Bleeding Edge0
Responsive Maintainers0
Poor Documentation0
Hard to Use0
Slow0
Buggy0
Abandoned0
Unwelcoming Community0
100
No reviews found
Be the first to rate

Alternatives

No alternatives found

Tutorials

No tutorials found
Add a tutorial