jsonkey

0.0.2 • Public • Published

JSONKey Build Status npm version

Sauce Test Status

Promised json key search.

Usage

In Browser

Use bower.

bower isntall jsonkey
<script src="./bower_components/jsonkey/dist/jsonkey_bundle.js"></script>

JSONKey will be installed to global.

In Node.js

Use npm.

npm isntall jsonkey
var JSONKey = require("jsonkey");

API

Constructor

var parser = new JSONKey(/*timeout: Number*/);

Create a json parser.

params

  • timeout :Number :Optional(Default 100)

    All promise created by key method will be rejected when specified milliseconds was past before key was found.

key

var findingName = parser.key(/*key: String*/);

Create promise for value corresponding to specified key.

params

  • key :String :Required

    You can use dot notation for nested object and brackets for array index.

example

 
parser.key("name.last")
      .then(function(value){
         console.log("LastName is " + value);
      });
 
parser.key("favorites[0]")
      .then(function(value){
         console.log("Fist favorite is " + value);
      })
parser.key("address")
      .then(function(value){
         console.log(value);
      },function(){
         console.log("address is not found");
      })
 
var jsonString = JSON.stringify({
   name:{
      last:"aaa",
      first:"bbb"
   },
   age:50,
   favorites:["book","beer"]
});
parser.parse(jsonString);
// "LastName is aaa"
// "Fist favorite is book"
// "address is not found"

filter, pipe, recovery, map, reduce, etc

promise generated by key function is chain-able. So easily create function chain as functional programming style. See also APIs of Promisechain.

 
 
parser.key("items")
.map(function(item){
   return item.price;
})
.reduce(function(acc, price){
   return acc + price;
}, 0)
.pipe(function(val){
   return "TotalPrice is:" + val;
})
.then(function(result){
   console.log(result);
});
 
 
var jsonString = JSON.stringify({
   items:[
      {name:"book",    price:10},
      {name:"apple",   price:3},
      {name:"banana",  price:2},
      {name:"water",   price:1},
   ]
});
parser.parse(jsonString);
// => "TotalPrice is: 16"
 

on, once, addListener, etc

JSONKey inherits Node.js's build in EventEmitter. So parser works as EventEmitter itself. Each key in jsonString will be emitted as event.

example

var parser = new JSONKey();
var parser.on("age", function(age){
  console.log("He is " + age + "years old");
});
 
var jsonString = JSON.stringify({
  name:{
    last:"aaa",
    first:"bbb"
  },
  age:50,
  favorites:["book","beer"]
});
parser.parse(jsonString);

Development

Install Node.js and NPM.

git clone git://github.com/georegeosddev/jsonkey.git
cd jsonkey
npm install
npm run-script build

Licence

MIT

Package Sidebar

Install

npm i jsonkey

Weekly Downloads

2

Version

0.0.2

License

MIT

Last publish

Collaborators

  • georgeosddev