I have json like this
var a = {
"name": "test1",
"redisData": {
"redisIp": "127.0.0.1",
"dbSetting": {
"dbIp": "127.0.0.1",
"dbUserName": "root",
"dbUserPassword": "root",
},
"otherData":{
"email":"a@gmail.com"
}
}
}
So i have to push this data in database when all the data present in all key for that purpose i have to validate that data like this
if (a.hasOwnProperty("redisData")) {
if (a.redisData.hasOwnProperty("dbSetting")) {
if (a.redisData.dbSetting.hasOwnProperty("dbIp")) {
if (a.redisData.dbSetting.dbIp) {
// now insert in to database
} else {
alert('DB server Ip missing');
}
} else {
alert('DB server Ip missing');
}
} else {
alert('DB server Ip missing');
}
} else {
alert('DB server Ip missing');
}
But this code looks ugly. Do we have better way to avoid multiple if condition and chaining of hasownproperty
.
Simple: Just check if the values exist and have a truthy value:
if (a.redisData && a.redisData.dbSetting && a.redisData.dbSetting.dbIp) {
// now insert in to database
} else {
alert('DB server Ip missing');
}
There is no real advantage in using hasOwnProperty
here.