Git Product home page Git Product logo

obpath.js's Introduction

ObPath

ObPath matches path expressions against objects, much like jsonpath does.

To install run "npm install -g obpath".

This should allow you to run obpath like this to get books that cost more than 10 simoleons:

wget "https://raw.githubusercontent.com/bloglovin/obpath.js/master/testdata/data.json"
cat data.json | obp ".store.books[*](gt(@.Price, 10))"

Some sample queries:

".store",
".store.books",
".store.*",
"..Author",
".store.counts[*]",
".store.counts[3]",
".store.counts[1:2]",
".store.counts[-2:]",
".store.counts[:1]",
".store.counts[:1].Price",
"..books[*](has(@.ISBN))",
".store.books[*](!empty(@.ISBN))",
".store.books[*](eq(@.Price, 8.99))",
".store.books[0:4](eq(@.Author, \"Louis L'Amour\"))",
"..books.*(between(@.Price, 8, 10)).Title",
"..books[*](gt(@.Price, 9))",
"..books[*](has(@.Metadata))",
"..books[*](contains(@.Title, 'R')).Title",
"..books[*](cicontains(@.Title, 'R')).Title",
".store.*[*](gt(@.Price, 18))"

Programmatic usage

var obpath = require('obpath');

main();

function main() {
  var context = obpath.createContext();

  // Get all trees up until the second last one
  var trees = obpath.mustCompile(".trees[:-2]", context);

  var data = {
    "trees":   ["Elm", "Oak", "Fir"],
    "animals": ["Cat", "Dog", "Horse"]
  };

  var result = trees.evaluate(data);
  result.forEach(function printMatch(match) {
    console.log("Match: ", JSON.stringify(match));
  });
}

obpath.js's People

Contributors

hugowetterberg avatar

Stargazers

Pelle Wessman avatar

Watchers

Pelle Wessman avatar James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.