我有一个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
答案 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];
}