我想用JS创建一个多级JSON字符串。创建一个多级JSON字符串
方案
3个国家,5和祖父有3个孩子这也为之有3个孩子,有5个朋友。
我从外部JSON文件中获取数据,看起来像这样。
{"countries":[
{
"name":"USA",
"grandfathers":[
{
"gFName":"Steve",
"grandfathersKid":[
{
"gFKName": "Linda",
"kid": [{
"name": "Steve JR",
"friends": [{
"name": "Kriss|John|Martin|Steven"
}]
}
]
}
]
}
]
}
]}
,现在我想存储一些国家在看起来完全一样在外部JSON文件所做的列表中的一个新的JSON列表和他们的亲属和朋友。我打算在后面的脚本中使用这个“自制”列表。
我给这家最初的反应是
var tree = new Array();
tree = {};
var countries = new Array();
countries[0] = "canada";
countries[1] = "USA";
countries[2] = "Mexico";
countries[0][0] = "Steve"; //Lives in Canada
countries[0][0][0] = "Linda"; //Daughter of Steve
countries[0][0][0][0] = "Steve JR"; // Kid of Linda
countries[0][0][0][0][0] = "Kriss"; //Steves Friend
...
$.each(countries...function(index, value){
tree[index].country = value;
$.each(grandfathers...function(key, value){
tree[index].country[key].grandfather = value;
}
等等,但是这不给我我想要的结果。我究竟做错了什么?而采取每一件事都是更有效的方法?
第三编辑...
'var tree = new Array(); tree = {};'可以被压缩到'var tree = {};'。你应该提供你想要的输入和输出的例子。你的问题似乎是创建适当的结构,而不是JSON(这只是'JSON.stringify(value)')。 – 2012-03-02 12:24:59
我提供了一个例子! – Philip 2012-03-02 12:33:57
这个例子没有意义。您正试图将值分配给字符串,就好像它们是数组一样。你实际上有什么输入?你真的想要什么JSON输出? – Quentin 2012-03-02 12:40:57