合并json的javascript数组

时间:2010-05-22 02:15:35

标签: javascript jquery json arrays

我将表单中的信息串行收集到数组中,如下所示:

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

(注意:两个列表数组中的名称 - 值(“名称”,“电子邮件”,“颜色”)不完全相同,每个列表数组中的项目数量有限但在提前;我需要每轮只向前一个结构连续添加一个数组,并且可能有任意数量的轮数,即“第三轮”:{...},“第四轮”:{...}和等等。)

最终,我希望JSON能够很好地解析它。

我使用jquery库,如果有帮助的话。

2 个答案:

答案 0 :(得分:1)

创建list_all作为新对象,如下所示:

var list_all = {};
list_all[identifier_1] = list_1;
list_all[identifier_2] = list_2;
// ...

答案 1 :(得分:0)

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

在jQuery API文档中搜索JSON:http://api.jquery.com/