Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 用嵌套的对象数组填充JSON对象的正确格式是什么?_Javascript_Arrays_Json - Fatal编程技术网

Javascript 用嵌套的对象数组填充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

我正在尝试使用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中创建一个新数组;,然后我陷入困境的是如何将其作为一个对象粘贴到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上拆分。