2013-04-08 72 views
0

给变量赋值我有一个JSON字符串如下:{firstname: "foo", lastname: "bar", message: "I'm fubar" } 并希望每个值分配给一个确切同名作为其各自的关键变量:如何通过钥匙在JavaScript

我应该得到一个var firstname或物体obj.firstname被赋予值“foo”,等等......

项目列表显然应该扩展,所以我不想硬编码键/变量名称来分配每个值。

对于这个非常简单的任务,一个好的方法是什么?

是否存在一个getElementById类型的解决方案来分配key所标识的变量与其各自的值?

这就是我想,用一些伪代码:

var firstname = ""; 
var lastname = ""; 
// etc... 
var data = JSON.parse({firstname: "foo", lastname: "bar", message: "I'm fubar", age: "etc..."}); 

    for (var key in data) { 

     ("the variable currently identified by the value of key").val(data[key]); 
     // or any other way of assigning "foo" to firstname 

     console.log("firstname: " + firstname + ", lastname: " + lastname); 
    } 

如果你想将其分配到具有这些值作为属性的对象,然后打印

firstname: foo, lastname: bar 
+0

你可以用'data.firstname'这样的'data.key'来访问它 – imclickingmaniac 2013-04-08 13:09:12

+0

问题解决了。我选择了基于对象的方法,因为它最适合我的问题,但其他答案也适用。 – 2013-04-08 13:22:06

回答

1

刚使用以下命令:

var obj = {firstname: "foo", lastname: "bar", message: "I'm fubar", age: "etc..."}; 

由于JSON是JavaScript的JavaScript Object Notation能够INTE翻译JavaScript对象等数据。它允许你以obj.firstname等方式访问属性。

+0

非常感谢这个答案,这简化了一切:) – 2013-04-08 13:15:28

1

你将不得不定义你想要“提取”键的范围。在这种情况下,似乎你可能要参考全球范围内:如果你在顶级范围运行代码你到窗口对象赋值的变量

for (var key in data) { 
    window[key] = data[key]; 
} 
2

其实。

for (var key in data) { 
    this[key] = data[key]; // Equivalent to window[key] here 
}