我的主页上的用户可以上传我需要解析的json字段。我正在寻找可能有很多别名的特定字段。我不知道应该怎么做来检查这些别名。
我现在正在做的只不过是通过if / else检查所有可能的属性,但我认为对我的情况有更好的选择:
function tryParseHeaders(data) {
var header = null
var normalizedHeader = {}
if(data.Header)
header = data.Header
else if(data.header)
header = data.header
else if(data.Headers)
header = data.Headers
else if (data.headers)
header = data.header
if(header.ProjectIdVersion)
normalizedHeader.projectVersion = header.ProjectIdVersion
else if(header.ProjectVersion)
normalizedHeader.projectVersion = header.ProjectVersion
else if(header.Version)
normalizedHeader.projectVersion = header.Version
return normalizedHeader
}
答案 0 :(得分:1)
您可以使用hasOwnProperty
函数,然后将该对象作为字典访问:
function tryParseHeaders(data) {
var index = 0;
var normalizedHeader = {}
var headerAliases = ["Header", "header", "Headers"];
var versionIdAliases = ["ProjectIdVersion", "ProjectVersion", "Version"];
for(index = 0; index < headerAliases.length; index++) {
if(data.hasOwnProperty(headerAliases[index])) {
normalizedHeader.header = data[headerAliases[index]];
}
}
for(index = 0; index < versionIdAliases.length; index++) {
if(data.hasOwnProperty(versionIdAliases[index])) {
normalizedHeader.projectVersion = data[versionIdAliases[index]];
}
}
return normalizedHeader;
}