[英]What is the correct format of populating a JSON object with a nested array of objects?
我正在尝试使用JSON对象的嵌套数组创建JSON对象。 正确的格式是什么?
这是我尝试创建的示例:
{
"reviewCount": 96,
"reviews": [
{"name": "Sean Steinman", "date": "reviewed 2 weeks ago", "reviewContent": "Fantastic Service"},
{"name": "Ryan Lundell", "date": "reviewed in the last week", "reviewContent":"Ask for Scott!"}
]
}
这是我到目前为止的内容:
var reviewObj = {
reviewCount: reviews.length,
reviews: [{name: , date: , reviewContent:}]
}
初始化之后,我将使用一个遍历现有字符串数组的for循环来填充它。
澄清:
我用来填充JSON对象的数组是:
[
"\nSean Steinman\nreviewed 2 weeks ago\n Fantastic Service\n",
"\nRyan Lundell\nreviewed in the last week\n Ask for Scott!\n• • •\n"
]
因此,我正在使用tmpArr = reviews[i].split('/n');
for
我创建一个新数组tmpArr = reviews[i].split('/n');
,然后卡住的地方是如何将其作为对象粘贴到JSON对象中。
首先,您没有构建“ JSON”对象。 您只是在构建一个对象。 除非您对其进行JSON编码,否则它不是JSON。 {"name": "bob"}
不是JSON,它是对象文字。 字符串 '{"name": "bob"}'
是JSON。
其次,您不能在对象文字内部循环,这是您的第二个代码示例似乎表明您正在尝试执行的操作。 相反,你需要初始化你reviews
属性为空数组, 然后循环,并追加项目的数组。
var reviews = [
"\nSean Steinman\nreviewed 2 weeks ago\n Fantastic Service\n",
"\nRyan Lundell\nreviewed in the last week\n Ask for Scott!\n• • •\n"
];
var reviewObj = {
reviewCount: reviews.length,
reviews: []
}
reviews.forEach(function(line) {
var review = line.split("\n");
reviewObj.reviews.push({name: review[0], date: review[1], reviewContent: review[2]});
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.