用嵌套的对象数组填充JSON对象的正确格式是什么?

What is the correct format of populating a JSON object with a nested array of objects?

本文关键字:对象 格式 是什么 填充 嵌套 数组 JSON      更新时间:2023-09-26

我试图用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"
]

所以我在我的fortmpArr = 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]});
});