Что вы цитируете является JavaScript объекта с массивом JavaScript в нем, не JSON * в поле зрения.
Чтобы создать его, я не думаю, что вы хотите массив на всех, только объект с вложенным объектом:
var data = {
settings: {},
page_id: page_id
};
var i, input;
for (i = 0; i < inputs.length; i++){
input = $(inputs[i]);
data.settings[input.attr('name')] = input.val();
}
Это работает, потому что объекты JavaScript являются картами пара имени/значения. Вы можете обратиться к свойству объекта, используя точечную нотацию и буквальное имя свойства:
x = obj.foo;
... или используя квадратные скобки обозначения и строки имя:
x = obj["foo"];
В последнем случае , вы можете использовать любое выражение, которое вы хотите для строки, так, например:
x = obj["f" + "o" + "o"];
JavaScript также имеет буквальные инициализатор объектов, которые вы можете использовать т о создании объекта со свойствами уже на нем:
obj = {foo: "bar"};
Это создает объект со свойством называется foo
со значением "bar"
и присваивает объект переменной obj
.
Так смотрит снова в блоке кода выше:
Мы создаем объект со свойствами settings
и page_id
. settings
инициализируется пустым объектом; page_id
инициализируется значением переменной page_id
.
Затем мы прокручиваем ваш inputs
и добавляем свойства к settings
, используя имя каждого входа, устанавливая значение свойства как значение ввода.
Итак, давайте предположим, что мы имеем
<input name="oneField" value="bar">
<input name="anotherField" value="bang">
<input name="yetAnotherField" value="cool">
... и давайте предположим, что page_id
является 3
.
Мы в конечном итоге с этой структурой в объекте, на который ссылается переменная data
:
{
settings: {
oneField: "bar",
anotherField: "bang",
yetAnotherField: "cool"
},
page_id: page_id
}
* JSONявляется текстовое обозначение. Когда вы пишете код типа var data = { ... };
, вы просто используете JavaScript. JSON - это подмножество литерального синтаксиса JavaScript, разработанного для простого анализа, поэтому, например, он удобен для хранения произвольных сложных данных в хранилищах данных или для извлечения данных с сервера. Вы извлекаете строку, которая содержит данные, а затем разобрать эту строку для создания структуры объекта в памяти.
Блестящий, спасибо, также хорошо убираю код :) – benhowdle89