2017-06-18 7 views
0

私のホームページのユーザーは、解析する必要があるjsonフィールドをアップロードできます。私は、エイリアス名がたくさんある特定のフィールドを探しています。私はこれらのエイリアス名を調べるために何をすべきかわかりません。その後、JSON解析のエイリアスフィールド

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

私に尋ねられた場合は、足を下げる必要があります。 apiを設定し、_them_プログラムを持っています。データを期待どおりの形式に強制する必要はありません。これは逆の方法です。あなたが準備した古い標準を使用している場合、その変換に役立つツールを作ることができます。 –

答えて

1

あなたはhasOwnProperty機能を使用することができますし、:

私が今やっていることのif /他経由で可能なすべてのプロパティをチェックするよりも何もありませんが、私は私の状況のた​​めのより良いオプションがあると仮定辞書としてオブジェクトにアクセスします。

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