我正在尝试使用嵌套的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"
]
所以我在我的for
中使用tmpArr = reviews[i].split('/n');
创建了一个新数组,然后我陷入困境是如何将其添加到JSON对象中一个东西。
答案 0 :(得分:2)
首先,您没有构建“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]});
});