json得到一种特定的语言

时间:2012-06-24 07:29:11

标签: javascript json

如果我有一个带有不同语言短语的JSON:

var lang = {
    'topic' : {
        'en' : 'Topic',
        'et' : 'Teema',
        'fi' : 'Aihe'
    },
    'MainPage' : {
        'en' : 'Main page',
        'et' : 'Pealeht',
        'fi' : 'Pääsivu'
    }//,
    //...etc
};

如何定义选择特定语言的功能:

function getText(lang, langKey) {
    //???????
    return langJson;
}

输出相同的短语,如:

getText(lang, 'en'); //outputs {topic:'Topic',MainPage:'Main page',..}
getText(lang, 'et'); //outputs {topic:'Teema',MainPage:'Pealeht',..}
getText(lang, 'fi'); //outputs {topic:'Aihe',MainPage:'Pääsivu',..}

一切顺利:我

1 个答案:

答案 0 :(得分:3)

基本上,您必须浏览整个lang对象并选择正确语言的值。

Object.keys将返回包含初始Array对象的键的lang。 您可以使用它们来创建新对象。 您可以使用for循环迭代这些键并将相应的值添加到结果对象,但我喜欢使用reduce来执行此操作:

function getText(lang, langKey) {
  return Object.keys(lang).reduce(function(re, key) {
    re[key] = lang[key][langKey];
    return re;
  }, {})
}