javascript - JSON 解析的别名字段

标签 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
}

最佳答案

您可以使用 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;
}

关于javascript - JSON 解析的别名字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44618417/

相关文章:

javascript - 用javascript替换html内容

嵌套结构中的 JSON 解码

jquery - 从 Google Charts 解析 Json

node.js - 使用 Node.js 检查文件是二进制文件还是 ASCII 文件?

linux - mkdir : cannot create directory ‘/usr/local/n/versions’ : Permission denied

javascript - 从服务器生成客户端 JavaScript 时主要关注什么?

javascript - 在 mouseleave 上调用clearInterval

jquery - 在 jQuery 中循环 JSON 响应

javascript - 类型错误 : Cannot read property 'first' of undefined

javascript - 通过请求使用 Cypress.io 上传文件