繁体   English   中英

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM