объединение массивов JavaScript для JSON - PullRequest
4 голосов
/ 22 мая 2010

Я последовательно собираю информацию из форм в массивы примерно так:

list = {"name" : "John", "email" : "name@domain.com", "country" : "Canada", "color" : "blue"};  
identifier = "first_round";

list = {"name" : "Harry", "email" : "othername@domain.com", "country" : "Germany"};  
identifier = "second_round";

Я хочу объединить их во что-то (у меня могут быть скобки, где мне нужны скобки), например:

list_all = {  
"first_round" :  
 {"name" : "John", "email" : "name@domain.com", "country" : "Canada", "color" : "blue"} ,  
"second_round" :  
{"name" : "Harry", "email" : "othername@domain.com", "country" : "Germany"}  
 };

чтобы я мог получить к ним доступ как:

alert(list_all.first_round.name) -> John

(Примечание: значения name («name», «email», «color») в двух списках-массивах не совсем одинаковые, количество элементов в каждом списке-массиве ограничено, но не известно заранее; мне нужно последовательно добавлять только один массив к предыдущей структуре каждый раунд, и может быть любое количество раундов, то есть «третий раунд»: {...}, «четвертый раунд»: {...} и и так далее.)

В конечном счете, я бы хотел, чтобы он был хорошо проанализирован для JSON.

Я использую библиотеку jquery, если это поможет.

Ответы [ 2 ]

1 голос
/ 22 мая 2010

Создать list_all как новый объект следующим образом:

var list_all = {};
list_all[identifier_1] = list_1;
list_all[identifier_2] = list_2;
// ...
0 голосов
/ 22 мая 2010

JSON использует буквенную запись объекта.Форма:

var person = {
 "name": "Douglas Adams"
 "age": 42
};

Точно так же (для всех намерений и целей) как:

var person = new Object();
person.name = "Douglas Adams";
person.age = 42;

Помогает ли это вам?

Вы также можете использовать

person["age"]

это то же самое, что и

person.age

и для итерации по именованным свойствам:

//prints the person.propertyName for all propertyName in person
for (var propertyName in person) {
 alert(person[propertyName]);
}

Вы можете передавать данные в виде строки, используя их для взаимодействияс сервером и преобразование его в объект, используя jQuery.Пример:

var jsonString = "{'name': 'Douglas Adams', 'age': 42}";
jQuery.parseJson(jsonString); //returns this as an object

Поиск JSON в документации по jQuery API: http://api.jquery.com/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...