我有这样的 json
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"
}
}
}
所以当所有数据都存在于所有键中时,我必须将这些数据推送到数据库中 为此,我必须像这样验证该数据
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');
}
但是这段代码看起来很难看。我们是否有更好的方法来避免多个 if 条件和 hasownproperty
的链接。
最佳答案
简单:只需检查值是否存在并且具有真值:
if (a.redisData && a.redisData.dbSetting && a.redisData.dbSetting.dbIp) {
// now insert in to database
} else {
alert('DB server Ip missing');
}
此处使用 hasOwnProperty
并没有真正的优势。
关于javascript - 如何检查对象中的 hasOwnProperty 链,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51841235/