Javascript 用嵌套的对象数组填充JSON对象的正确格式是什么?
我正在尝试使用JSON对象的嵌套数组创建JSON对象。这个的正确格式是什么 下面是我试图创建的一个示例:Javascript 用嵌套的对象数组填充JSON对象的正确格式是什么?,javascript,arrays,json,Javascript,Arrays,Json,我正在尝试使用JSON对象的嵌套数组创建JSON对象。这个的正确格式是什么 下面是我试图创建的一个示例: { "reviewCount": 96, "reviews": [ {"name": "Sean Steinman", "date": "reviewed 2 weeks ago", "reviewContent": "Fantastic Service"}, {"name": "Ryan Lundell", "date": "revi
{
"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中创建一个新数组;,然后我陷入困境的是如何将其作为一个对象粘贴到JSON对象中 首先,您没有构建JSON对象。你只是在构建一个对象。在对其进行JSON编码之前,它不是JSON。{name:bob}不是JSON,它是一个对象文本{name:bob}字符串是JSON 其次,您不能在对象文本内循环,这是您的第二个代码示例似乎表明您正在尝试执行的操作。相反,您需要将属性初始化为空数组,然后循环并将项附加到数组中
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]});
});
第一个代码块显示正确的JSON格式。问题到底是什么?{name:,date:,reviewContent:}当然是无效语法。但我不清楚你想要什么。基本上,JSON编码和您想要创建的对象文本具有完全相同的结构。也许你想要评论:而不是评论?你有什么问题?请记住在最后调用JSON.stringify以获取JSON。更正:第一个代码块几乎显示了正确的JSON格式。属性名name、date和reviewContent应该用双引号括起来。我建议为评论数组创建一个单独的对象,如reviewDetailObj={name:,date:,reviewContent:},并在循环中使用ReviewDetailobserry家伙动态填充评论,请参阅对问题的编辑,我补充这个问题是为了澄清一些事情。我赶去开会,回来后会看看你的答案。我是n00b,再次感谢!刚刚实施了你的建议。看起来不错,但唯一的问题是所有内容名称、日期和内容都在review数组的review[0]中。review[1]和review[2]都是空的。@prgrmr那么您的输入是错误的。实际上,我们发现我们试图在/n而不是\n上拆分。