Javascript 如何将一个大数组作为JSON对象返回JSON对象?
SpookyJS中有一个函数,它返回一个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"
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
似乎不是您真正想要的,您正在让消费者修复它。