1.1.0 • Published 5 years ago

npm-json-traverse-filter v1.1.0

Weekly downloads
2
License
ISC
Repository
-
Last release
5 years ago

#Traverse and Filter Json Objects

NPM Package to go to all the elements of JSON Object ( any level deep ) and keep or remove the elements as given in the filters.

npm-json-traverse-filter works with following separators:

= ( equals )

!= ( no equals )

For example:

const traversefilter = require('npm-json-traverse-filter');

var jsonObject = {
  items: [
    { 
      foo:"bar1",
    	tel:"6868",
    	age:"23",
    	jobs:[
    	  {
    		  tech:"web",
    		  name: "c1",
    		  phone:[
    		      {
    		        home:'787878',
    		        ofc:'999999'
    		      },
              {
    		        home:'99999',
    		        ofc:'999999'
    		      }
    		  ],
    		  price: {
                    dutyFreeAmount: {
                        value: 0
                    }
                  }
    		  },
    		{
    		  tech:"php",
    		  name: "c2"
    		},
    		{
    		  tech:"node",
    		  name: "c3"
    		}
    	]
    }
    ]
};

var filters = ["items.jobs.phone.home=99999"];

var filteredObj = traversefilter.filterResponse(jsonObject, filters);

Response:

filteredObj = {
  items: [
    { 
      foo:"bar1",
    	tel:"6868",
    	age:"23",
    	jobs:[
    	  {
    		  tech:"web",
    		  name: "c1",
    		  phone:[
				{
    		        home:'99999',
    		        ofc:'999999'
    		    }
    		  ],
    		  price: {
                    dutyFreeAmount: {
                        value: 0
                    }
                  }
    		  },
    		{
    		  tech:"php",
    		  name: "c2"
    		},
    		{
    		  tech:"node",
    		  name: "c3"
    		}
    	]
    }
    ]
};

#Filter Recursively

You can also do the same filters recursively on the child objects if you have same body inside as an example below:

const traversefilter = require('npm-json-traverse-filter');

var jsonObject = {
  items: [
    { 
      foo:"bar1",
    	tel:"6868",
    	age:"23",
    	jobs:[
    	  {
    		  tech:"web",
    		  name: "c1",
    		  phone:[
    		      {
    		        home:'787878',
    		        ofc:'999999'
    		      },
              {
    		        home:'99999',
    		        ofc:'999999'
    		      }
    		  ],
    		  price: {
                    dutyFreeAmount: {
                        value: 0
                    }
                  }
    		  },
    		{
    		  tech:"php",
    		  name: "c2"
    		},
    		{
    		  tech:"node",
    		  name: "c3"
    		}
    	],
		childItems:[
			{
				foo:"bar1",
				tel:"6868",
				age:"23",
				jobs:[
				  {
					  tech:"web",
					  name: "c1",
					  phone:[
						{
							home:'787878',
							ofc:'999999'
						},
						{
							home:'99999',
							ofc:'999999'
						}
					  ],
					  price: {
							dutyFreeAmount: {
								value: 0
							}
						  }
					  },
					{
					  tech:"php",
					  name: "c2"
					},
					{
					  tech:"node",
					  name: "c3"
					}
				]
			}
		]
    }
    ]
};

var filters = ["items.jobs.phone.home=99999"];

var filteredObj = traversefilter.filterResponse(jsonObject, filters, 'childItems');

Response:

filteredObj = {
  items: [
    { 
      foo:"bar1",
    	tel:"6868",
    	age:"23",
    	jobs:[
    	  {
    		  tech:"web",
    		  name: "c1",
    		  phone:[
				{
    		        home:'99999',
    		        ofc:'999999'
    		    }
    		  ],
    		  price: {
                    dutyFreeAmount: {
                        value: 0
                    }
                  }
    		  },
    		{
    		  tech:"php",
    		  name: "c2"
    		},
    		{
    		  tech:"node",
    		  name: "c3"
    		}
    	],
		childItems:[
			{
				foo:"bar1",
				tel:"6868",
				age:"23",
				jobs:[
				  {
					  tech:"web",
					  name: "c1",
					  phone:[
						{
							home:'99999',
							ofc:'999999'
						}
					  ],
					  price: {
							dutyFreeAmount: {
								value: 0
							}
						  }
					  },
					{
					  tech:"php",
					  name: "c2"
					},
					{
					  tech:"node",
					  name: "c3"
					}
				]
			}
		]
    }
    ]
};
1.1.0

5 years ago

1.0.9

5 years ago

1.0.8

5 years ago

1.0.7

5 years ago

1.0.6

5 years ago

1.0.5

5 years ago

1.0.4

5 years ago

1.0.3

5 years ago

1.0.2

5 years ago

1.0.1

5 years ago

1.0.0

5 years ago