提问者:小点点

如何使用自己的对象手动调用json对象?


假设我有以下json文件:

const obj1 = {
   en: {
      user: {
          name: "John"
      }
   },
   language: "en"
}
const obj2 = {
   ru: {
      user: {
          name: "Vladimir"
      }
   },
   language: "ru"
}

要用NODE I检索这些对象,将使用以下代码:

let en_name = obj1.en.user.name; //returns John
let ru_name = obj2.ru.user.name; //returns Vladimir

是否可以使用对象language,并基于该语言调用user.name? 也许像这样的东西,不起作用:

let lang = obj.language
let anyName = language.user.name;

更新:

我想访问data.jvprofiles.any_language.title,如图所示:

console.log(data.preferredLanguage); //Returns "nl"
let title = data.jvProfiles.nl.title; //Ruturns "Database Marketeer"

console.log(data.jvProfiles.data[data.preferredLanguage]); //gives error
console.log(data.jvProfiles.data[data.preferredLanguage].title); //gives same error

TypeError: Cannot read property 'nl' of undefined

解决方案:

console.log(data.jvProfiles[data.preferredLanguage].title); 

共1个答案

匿名用户

可以使用方括号表示法动态访问对象属性:

null

const obj = {
   en: {
      user: {
          name: "John"
      }
   },
   language: "en"
}

const name = obj[obj.language].user.name

console.log(name)