Javascript JS-创建动态json对象
我想创建一个具有以下结构的嵌套JSON对象:Javascript JS-创建动态json对象,javascript,json,Javascript,Json,我想创建一个具有以下结构的嵌套JSON对象: [{ "date" : "2011", "imgs" : [ {"path" : "img1.jpg"}, {"path" : "img2.jpg"}, {"path" : "img3.jpg"} ] },{ "date" : "2012", "imgs" : [ {"path" : "img4.jpg"},
[{
"date" : "2011",
"imgs" : [
{"path" : "img1.jpg"},
{"path" : "img2.jpg"},
{"path" : "img3.jpg"}
]
},{
"date" : "2012",
"imgs" : [
{"path" : "img4.jpg"},
{"path" : "img5.jpg"},
{"path" : "img6.jpg"}
]
}]
等等
我有一个带有图像路径和时间戳的JSON对象。
2011年图片中的所有路径都应保存在嵌套的2011对象中。2012年的所有照片
但我不知道如何创建imgs结构…
要重新创建您的确切示例,您可以这样编写:
var json = [];
var imgCount = 1;
var date = 2011;
var imageSets = 2;
for(var i = 0; i < imageSets; i++){
json.push({ "date":date++,
"imgs":(function(){
var set = [];
for(var n = 0; n < 3; n++){
set.push({"path":"img"+(imgCount++)+".jpg"});
}
return set;})()
);
}
var Year = function (path1, path2, path3) {
this[0] = path1;
this[1] = path2;
this[2] = path3;
}
var year2011 = ["img1.jpg","img2.jpg","img3.jpg"],
year2012 = ["img4.jpg","img5.jpg","img6.jpg"]
var json=[];
var imgCount=1;
var日期=2011年;
var图像集=2;
对于(var i=0;i
如果您需要一个更动态的路径,那么您可以将图像放在一个数组中,而不是使用imgCount
作为一个精确的数字,您可以只引用数组中存储的url。date也可以这样做,它是对数据数组的引用,而不是date+,其中索引是此处显示的日期变量
如果事情变得更复杂,你可以用类来构建这个结构。我认为最好用这种方式组织数据:
var year2011={
“路径1”:“img1.jpg”,
“路径2”:“img2.jpg”,
“路径3”:“img3.jpg”
}
2012年风险值={
“路径1”:“img4.jpg”,
“路径2”:“img5.jpg”,
“路径3”:“img6.jpg”
}
这要简单得多。
您可以像这样为对象编写构造函数:
var json = [];
var imgCount = 1;
var date = 2011;
var imageSets = 2;
for(var i = 0; i < imageSets; i++){
json.push({ "date":date++,
"imgs":(function(){
var set = [];
for(var n = 0; n < 3; n++){
set.push({"path":"img"+(imgCount++)+".jpg"});
}
return set;})()
);
}
var Year = function (path1, path2, path3) {
this[0] = path1;
this[1] = path2;
this[2] = path3;
}
var year2011 = ["img1.jpg","img2.jpg","img3.jpg"],
year2012 = ["img4.jpg","img5.jpg","img6.jpg"]
然后通过要添加为参数的路径调用它:
var year2013 = new Year("img7.jpg", "img8.jpg", "img9.jpg");
这将导致:
year2013 = {
"path1": "img7.jpg",
"path2": "img8.jpg",
"path3": "img9.jpg"
}
你也可以这样组织路径:
var json = [];
var imgCount = 1;
var date = 2011;
var imageSets = 2;
for(var i = 0; i < imageSets; i++){
json.push({ "date":date++,
"imgs":(function(){
var set = [];
for(var n = 0; n < 3; n++){
set.push({"path":"img"+(imgCount++)+".jpg"});
}
return set;})()
);
}
var Year = function (path1, path2, path3) {
this[0] = path1;
this[1] = path2;
this[2] = path3;
}
var year2011 = ["img1.jpg","img2.jpg","img3.jpg"],
year2012 = ["img4.jpg","img5.jpg","img6.jpg"]
注意:
我用“年”写了这些年之前,因为如果您只为变量写入一个数字,则会导致错误。看起来您已经创建了JSON。您从何处转换数据?无法确定您需要什么或卡在何处。可能重复:。您刚刚创建了它。您是指用程序/脚本创建它吗?如果是,您的起点是什么。W这是您从first获得的值。