An open API service indexing awesome lists of open source software.

https://github.com/moappi/json-filter

Filtering for JSON objects
https://github.com/moappi/json-filter

javascript json node-js node-module nodejs

Last synced: about 1 year ago
JSON representation

Filtering for JSON objects

Awesome Lists containing this project

README

          

json-filter
=========

Usage (browser)
------------

let filter = new JSON.filter({"allowed":"$string"});

let output = filter.apply({"allowed":"this is allowed","notallowed":"this is not allowed"});

//output = {"allowed":this is allowed"}

Usage (node.js)
------------

npm install node-json-filter

JSON.filter = require("node-json-filter");

What is json-filter?
--------------
json-filter extends JSON with a filter function that will helps validate 'unverified' JSON objects.

+ Verifies object name and value type
+ Allows for multiple types of objects (arrays, json objects, strings, numbers etc..)
+ Verifies array objects with a single filter
+ Able to verify complex json objects (nested arrays, objects etc..)
+ Allows for simple switch cabilitity (case & default)

Usage
-----
```javascript

//If using in NODE.js (otherwise ignore)
JSON.filter = require('node-json-filter');

var filter = new JSON.filter( {
"str":"$string",
"num":"$number",
"bool":"$boolean",
"obj":{"str":"$string"},
"arry":["$string"],
"arryobj":[
{"str":"$string"}
],
"complex":{
"arry":[
{"num":"$number"}
],
"obj":{"str":"$string"},
"num":"$number"
},
"parsing":[{
"num":"$number",
"bool":"$boolean",
"str":"$string"
}],
"all":{
"$all":{
"str":"$string",
"num":"$number"
}
},
"default":{
"$default":{
"str":"$string",
"num":"$number",

"$default":"$string"
}
}
});

console.log( filter.apply({
"str":"test",
"num":123,
"bool":true,
"obj":{"str":"test"},
"arry":["test","me","out],
"arryobj":[
{"str":"test1"},
{"str":"test2"},
{"str":"test3"}
],
"complex":{
"arry":[
{"num":12},
{"num":"123"},
{"num":12.3}
],
"obj":{"str":"test123"},
"num":"12.5"
},
"parsing":[
{"num":"12",
"bool":"true",
"str":"some str"},
{"num":"12.5",
"bool":"false"},
{"num":"don't show this one",
"bool":0},
{"bool":1},
{"bool":"don't show this one"}
],
"all":{
"test1":{
"str":"test",
"num":123
},
"test2":{
"str":"test",
"num":1234
}
},

"default":{
//Specified directly (case)
"str":"testy",
"num":123,

//Covered by $default
"someother":"stuff",
"plusthis":"stuff"
},
"filterout":"you won't see this property"
}));
```