Javascript 只有当数据来自循环GET请求时,JSON stringify才会失败
因此,当我试图创建JSON字符串时,我遇到了一个问题。只有当用于构建将被字符串化的对象/数组的数据来自循环中的GET请求时,才会出现问题 当我将实际的javascript对象发布到控制台时,它包含所有正确的信息。但无法生成有效的JSON字符串。我已经在下面的例子中测试了这个方法,并且知道它是有效的。我得出的结论是,这与GET请求有关。我尝试了一些解决方案;玩变量范围,异步流控制,但仍然没有运气。因此我在这里。我错过了什么 谢谢大家 以下是有问题的代码:Javascript 只有当数据来自循环GET请求时,JSON stringify才会失败,javascript,jquery,json,get,Javascript,Jquery,Json,Get,因此,当我试图创建JSON字符串时,我遇到了一个问题。只有当用于构建将被字符串化的对象/数组的数据来自循环中的GET请求时,才会出现问题 当我将实际的javascript对象发布到控制台时,它包含所有正确的信息。但无法生成有效的JSON字符串。我已经在下面的例子中测试了这个方法,并且知道它是有效的。我得出的结论是,这与GET请求有关。我尝试了一些解决方案;玩变量范围,异步流控制,但仍然没有运气。因此我在这里。我错过了什么 谢谢大家 以下是有问题的代码: var start = 1518; va
var start = 1518;
var end = 1522;
var eventList = {};
eventList['event'] = [];
for (var i = 0; i < (end - start); i++) {
$.get('https://www.someaddress.com/events/index.php?view=' + (start + i), function(response) {
var eventRep = $(response).find('h2').text();
var categoryRep = $(response).find('span.center-name').text();
var descriptionRep = $(response).find('div.description.col-md-9').find('p').text();
var eventScrape = {
"title": eventRep,
"category": categoryRep,
"description": descriptionRep
};
//alert(eventRep);
eventList['event'].push(eventScrape);
});
}
var str = JSON.stringify(eventList, undefined, 4);
console.log(eventList);
console.log(str);
以下是我想要的工作示例:
var eventList = {};
eventList['event'] = [];
for (var i = 0; i < 5; i++) {
var eventRep = "Event title " + i;
var categoryRep = "Event category " + i;
var descriptionRep = "Event description " + i;
var eventScrape = {
"title": eventRep,
"category": categoryRep,
"description": descriptionRep
};
eventList['event'].push(eventScrape);
//alert(i);
}
var str = JSON.stringify(eventList, undefined, 4);
console.log(eventList);
console.log(str);
$.get是以异步方式执行的,所以请将代码放在get函数中
解决方案代码
var start=1518;
var-end=1522;
var eventList={};
事件列表['event']=[];
对于var i=0;i<结束-开始;i++{
$获得'https://www.someaddress.com/events/index.php?view=“+start+i,函数响应{
var eventRep=$response.find'h2'。文本;
var categoryRep=$response.find'span.center name'。文本;
var descriptionRep=$response.find'div.description.col-md-9'.find'p'.text;
var eventScrape={
标题:eventRep,
类别:categoryRep,
description:descriptionRep
};
//alerteventRep;
事件列表['event'].pusheventscrap;
//由于$.get是异步数据,因此将以异步方式加载数据,因此除非数据可用,否则无法访问它
var str=JSON.stringifyeventList,未定义,4;
console.logeventList;
console.logstr;
};
}非常感谢,非常感谢。现在说得通了,我知道我一定忽略了什么。让我有点发疯。
var eventList = {};
eventList['event'] = [];
for (var i = 0; i < 5; i++) {
var eventRep = "Event title " + i;
var categoryRep = "Event category " + i;
var descriptionRep = "Event description " + i;
var eventScrape = {
"title": eventRep,
"category": categoryRep,
"description": descriptionRep
};
eventList['event'].push(eventScrape);
//alert(i);
}
var str = JSON.stringify(eventList, undefined, 4);
console.log(eventList);
console.log(str);
{
"event":[
{
"title":"Event title 0",
"category":"Event category 0",
"description":"Event description 0"
},
{
"title":"Event title 1",
"category":"Event category 1",
"description":"Event description 1"
},
{
"title":"Event title 2",
"category":"Event category 2",
"description":"Event description 2"
},
{
"title":"Event title 3",
"category":"Event category 3",
"description":"Event description 3"
},
{
"title":"Event title 4",
"category":"Event category 4",
"description":"Event description 4"
}
]
}