I am trying to fetch all the keys of one nested object using Javascript but as per my code its not working as expected. I am explaining my code below.
let jsonObj = {
"service":[
{
"name":"restservice",
"device":"xr-1",
"interface-port":"0/0/2/3",
"interface-description":"uBot testing for NSO REST",
"addr":"10.10.1.3/24",
"mtu":1024
}
],
"person": {
"male": {
"name": "infinitbility"
},
"female": {
"name": "aguidehub"
}
}
}
const getNestedKeys = (data, keys) => {
if(!(data instanceof Array) && typeof data == 'object'){
Object.keys(data).forEach(key => {
keys.push(key);
const value = data[key];
if(typeof value === 'object' && !(value instanceof Array)){
getNestedKeys(value, keys);
}
});
}
return keys
}
let result = getNestedKeys(jsonObj, []);
console.log('result', result);
Here I am not getting the keys present inside the service array. I need to search all the keys present inside one nested object using Javascript.
let jsonObjmeans you do not have JSON, you have a normal JS object.instanceof Array- butserviceis an array?else if(Array.isArray(value))after the second if and inside thatvalue.forEach(val => getNestedKeys(val, keys)). someting like this?[...new Set(result)]