node-json-filter

v1.1.0
JSON object filtering by object name and type
json filtering filter type

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


    //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"
        }));
npm i node-json-filter

Metadata

Downloads

Maintainers