Install : npm install --save json-omit
Available functions :
omit(originialObject, ...paths)
: copies theoriginalObject
and deletes attributes specified in...paths
before returning the resultclone(originalObject)
: retruns a deep copy of theoriginalObject
const { omit, clone } = require("json-omit");
omit attributes or nested attributes :
const orignialObject = {
depth0: {
depth1: {
attr1: "keep this attribute",
attr2: { value: "remove me" },
attr3: "remove me as well"
}
},
someOtherAttribute: "I should be removed"
};
const omitted = omit(
originalObject,
"depth0.depth1.attr2",
"depth0.depth1.attr3",
"someOtherAttribute"
);
console.log(omitted);
/*
{
depth0: {
depth1: {
attr1: "keep this attribute"
}
}
}
*/
omit attribute or nested attribute in every row of array
const originalObject = {
history: [
{ timestamp: "1234567", value: "example1" },
{ timestamp: "1234568", value: "example1", extraValue: true },
{ timestamp: "1234569", value: "example1" },
{ timestamp: "1234570", value: "example1" }
]
};
const omitted = omit(originalObject, "history.value");
console.log(omitted);
/*
{
history: [
{ timestamp: "1234567" },
{ timestamp: "1234568" },
{ timestamp: "1234569" },
{ timestamp: "1234570" }
]
}
*/
omit attribute or nested attribute in specific row of array
const originalObject = {
history: [
{ timestamp: "1234567", value: "example1" },
{ timestamp: "1234568", value: "example1" },
{ timestamp: "1234569", value: "example1" },
{ timestamp: "1234570", value: "example1" }
]
};
const omitted = omit(originalObject, "history.2.value");
console.log(omitted);
/*
{
history: [
{ timestamp: "1234567", value: "example1" },
{ timestamp: "1234568", value: "example1" },
{ timestamp: "1234569" },
{ timestamp: "1234570", value: "example1" }
]
};
*/
const originalObject = {
depth0: { depth1: { depth2: { value: "nested value" } } }
};
const copiedObject = clone(originalObject);
copiedObject.depth0.depth1.depth2.value = "changed nested value";
console.log(originalObject.depth0.depth1.depth2.value); // outputs "nested value"
console.log(copiedObject.depth0.depth1.depth2.value); // outputs "changed nested value"
- Contributing is very welcomed via pull requests or creating issues
- If you make a pull request, be sure to write/adapt a test file with respect to your specific changes
- Running tests is done via mocha and npm, run them like so :
npm t