我有这样的json
var a = {
"name": "test1",
"redisData": {
"redisIp": "127.0.0.1",
"dbSetting": {
"dbIp": "127.0.0.1",
"dbUserName": "root",
"dbUserPassword": "root",
},
"otherData":{
"email":"[email protected]"
}
}
}
所以当所有数据都存在于所有密钥中时,我必须将这些数据推送到数据库中
为此,我必须验证这样的数据
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');
}
但是这段代码很难看。我们是否有更好的方法来避免
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/