如何在JavaScript中通过键为变量赋值

时间:2013-04-08 13:03:28

标签: javascript json forms variables

我有一个JSON字符串,如下所示:{firstname: "foo", lastname: "bar", message: "I'm fubar" } 并希望将每个值分配给名称与其各自键完全相同的变量:

我应该为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

3 个答案:

答案 0 :(得分:2)

实际上,如果您在顶级范围内运行代码,则会将变量分配给窗口对象。

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

答案 1 :(得分:1)

如果要将其分配给具有这些值作为属性的对象,请使用以下命令:

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

由于JSON为JavaScript Object Notation JavaScript能够将此类数据解释为JavaScript对象。这允许您以obj.firstname等方式访问属性。

答案 2 :(得分:1)

您必须定义要“提取”密钥的范围。在这种情况下,您似乎可能想要引用全局范围:

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