Javascript 如何将一个大数组作为JSON对象返回JSON对象?

Javascript 如何将一个大数组作为JSON对象返回JSON对象?,javascript,arrays,json,node.js,spookyjs,Javascript,Arrays,Json,Node.js,Spookyjs,SpookyJS中有一个函数,它返回一个JSON对象,当在nodeJS中调用GET方法时,该对象只包含一个巨大的数组字符串。我们希望它返回一个JSON对象,其中数组的字符串转换为数组的JSON对象 注意:如果有任何变化,我们最终希望能够在AngularJS中使用这些对象 以下是函数: res.send({reviewCount: reviews.length, reviews: reviews}); 以下是它的回报: { "reviewCount": 96, "reviews"

SpookyJS中有一个函数,它返回一个
JSON对象
,当在
nodeJS
中调用GET方法时,该对象只包含一个巨大的
数组
字符串。我们希望它返回一个
JSON对象
,其中
数组
字符串
转换为
数组
JSON对象

注意:如果有任何变化,我们最终希望能够在
AngularJS
中使用这些对象

以下是函数:

res.send({reviewCount: reviews.length, reviews: reviews});
以下是它的回报:

{
    "reviewCount": 96,
    "reviews": [
        "\nSean Steinman\nreviewed 2 weeks ago\n Fantastic Service\n",
        "\nRyan Lundell\nreviewed in the last week\n Ask for Scott!\n• • •\n"
    ]
}
我们想要返回的内容:

{
    "reviewCount": 96,
    "reviews": [
        {name: "Sean Steinman", date: "reviewed 2 weeks ago", review: "Fantastic Service"},
        {name: "Ryan Lundell", date: "reviewed in the last week", review:"Ask for Scott!"}
    ]
}
我们尝试使用
JSON.stringify()
,但它只是将所有内容转换为一个JSON对象:

res.send({reviewCount: reviews.length, reviews: JSON.stringify(reviews)});

我终于弄明白了。以下是我所做的:

spooky.run(function(){
       var reviewObj = {
          reviewCount: reviews.length,
          reviews: []
        }
        reviews.forEach(function(line){   
          //turn the string into an array           
          var review = line.split('\n');
          });
          //add the array elements to the object
          reviewObj.reviews.push({name: review[0], date: review[1], reviewContent: review[2]});

        }); 

       this.echo('about to emit');
       this.emit("gotReviews", reviewObj);
    });

\n
上拆分并手动将它们添加到对象中。@BenFortune,您想添加更多细节作为答案吗?您需要在较低级别上解决此问题。为什么SpookifyJS没有对您的数据进行任何解析?它可能出现在具有语义含义的div中。使用它来构建对象,而不是在换行符上拆分。@Davidermann我们将从正在爬网的页面返回一个向下钻取的
outerText
,这就是它以这种方式返回对象的原因。@nearyprgrmr:那就是您需要进行修复的地方
outerText
似乎不是您真正想要的,您正在让消费者修复它。