JSON解析的别名字段

时间:2017-06-18 18:53:58

标签: javascript json node.js express

我的主页上的用户可以上传我需要解析的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
}

1 个答案:

答案 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;
}