New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

json-query-engine

Package Overview
Dependencies
Maintainers
1
Versions
9
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

json-query-engine

Query and paginate a JSON object with JSONPath

  • 0.2.6
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
1
Maintainers
1
Weekly downloads
 
Created
Source

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

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

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

Keywords

FAQs

Package last updated on 21 May 2017

Did you know?

Socket

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.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc