Module to manupilate a json objet
npm install json-manipgetAllKeyString)
isPresent)
removeLastKey)
getValue)
setValue)
npm install json-manip
const JSONManipulator = require('json-manip').JSONManipulator;
const jsonManip = new JSONManipulator();
const obj = {
name: 'JSON Manipulator',
preferences: {
},
food: {
legume: 'Feuille'
},
references: {
workMates: {
"1": "Dupont",
"2": "Du bois"
}
}
};
const list = jsonManip.getAllKeyString(obj);
// Should return :
[
'food',
'food.legume',
'name',
'preferences',
'references',
'references.workMates',
'references.workMates.1',
'references.workMates.2']
const falseResult = jsonManipulator.isPresent(obj, 'name.food.meal'); // should return false
const trueResult = jsonManipulator.isPresent(obj, 'references.workMates.2'); // should return true
JSONManipulator.removeLastKey(obj, 'references.workMates.1');
// Should return :
{
name: 'JSON Manipulator',
preferences: {},
food: { legume: 'Feuille' },
references: { workMates: { "2": "Du bois" }}
};
jsonManipulator.getValue(obj, 'references.workMates.2'); // Du bois
const res = jsonManipulator.setValue(obj, 'ID', '50'); // will add a property `ID` with the value `50` in the same level than `name` and return the edited object
const res = jsonManipulator.setValue(obj, 'name', 'Manip'); // will edit the `name` property from `JSON Manipulator` to `Manip`
const res = jsonManipulator.setValue(obj, 'preferences.UN.DEUX.TROIS', 3); // will add a property `TROIS` into the sub object `preferences` every intermediate object will be created if they do not exist
const res1 = jsonManipulator.setValue(obj, 'food.meal', 'chocolate'); // will add a property `meal` into sub object `food`
const res2 = jsonManipulator.setValue(obj, 'food.meal.name', 'something'); // will return te initial object if trying to set a confusing keystring (i.e trying to add a property `name` on `meal` which is a `string`)
npm test or npm run test