我尝试使用多种语言的信息存储JSON对象。我甚至不确定他们这样做是好的,欢迎任何建议。
我目前的问题是,我不知道如何在不知道它是什么语言的情况下访问第一语言。
var Data = {
"NameIntern": "Something intern",
"en": {
"Name": "Some name",
"ModuleOrder": "123,333,22" }
};
document.write(Data[1].Name);
我只想访问第二个对象,有时候是" en",有时是" de"。
感谢任何tipps!
答案 0 :(得分:1)
这是一个纯粹的JavaScript解决方案: 第一:你得到了对象的键:
var keys = Object.keys(Data);
然后:密钥存储在一个数组中。您可以使用索引访问它们。像:
Data[keys[0]]
现在:您可以使用foor循环或任何您想要的东西:)
答案 1 :(得分:1)
数据是一个不是数组的对象,所以你不能像Data [0]那样访问它,你可以像Data.en那样访问它。
但正如你所说,你不知道关于en或de的任何事情,所以我建议你像这样形成Data对象:
var Data =[{
lang:"en",
langData:{
Name:"Some name"
}
}]
答案 2 :(得分:0)
var Data = {
"NameIntern": "Something intern",
"en": {
"Name": "Some name",
"ModuleOrder": "123,333,22" }
};
var index = 0;
$.each(Data, function(key, val){
index += 1;
if (index == 2){
// key is the language, like in this example key is 'en'
console.log(key);
}
});
答案 3 :(得分:0)
var name = (Data.en || Data.de || {})['Name'];
(Data.en || Data.de || {})
获取 Data.en 或 Data.de 的值,如果两者都不存在,则返回空对象,以便脚本不会抛出名称属性()['Name']
与myObject['Name']
,myObject.Name
name
变量,至少某些名称或undefined
如果您有更多语言,请将它们全部添加,请注意:它将返回第一个找到的语言
var name = (Data.en || Data.de || Data.ru || Data.fr || {})['Name'];
答案 4 :(得分:0)
使用Object.keys
方法获取对象属性名称列表:
console.log(Data[Object.keys(Data)[1]]['Name']); // "Some name"