2013-04-08 4 views
0

У меня есть строка JSON следующим образом: {firstname: "foo", lastname: "bar", message: "I'm fubar" } и хочу присвоить каждое значение переменного с именем точно так же, как соответствующая клавиша:Как присвоить значения переменного ключа в JavaScript

я должен получить var firstname или объекту obj.firstname присваивается значение «foo» и т. д.

Список элементов, очевидно, должен быть расширен, поэтому я не хочу жестко указывать имена ключей/переменных для назначения каждого значения.

Что было бы хорошим способом решить эту очень простую задачу?

Существует ли метод getElementById для назначения переменной, идентифицируемой ключом, с ее соответствующим значением?

Это то, что я пытаюсь, с каким-то псевдо-код:

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.key' как' data.firstname' – imclickingmaniac

+0

Проблема решена. Я выбрал подход, основанный на объектах, потому что он поставил мою проблему лучше, но другие ответы также работают. –

ответ

1

Если вы хотите, чтобы назначить его на объект, который имеет эти значения как свойства только используйте следующее:

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

Как JSON является JavaScript Object Notation JavaScript способен InTe rpret такие данные, как объекты JavaScript. Это позволяет вам получить доступ к свойствам на пути obj.firstname и т. Д.

+0

Большое спасибо за этот ответ, это упрощает все :) –

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 
} 
Смежные вопросы