我有一个非常简单的自制 API,它读取服务器上一些文件的内容,解析它们并以 JSON 发送它们的内容。
我的网页使用 Ajax 调用 API,读取数据并将它们存储在自定义对象上。问题是,无论我在 JSON 中解析了多少文件,只有第一个文件被处理为我的 Javascript 代码。
runs = [];
function Solution(values) {
this.number = values[0]
this.weight = values[1]
this.value = values[2]
this.score = values[3]
}
function DateValue(date) {
regex = new RegExp(/(\d{4})-(\d{1,2})-(\d{1,2})-(\d{1,2}):(\d{1,2}):(\d{1,2})-(\d{1,2})/)
dateArray = date.split(regex)
this.year = dateArray[1]
this.month = dateArray[2]
this.day = dateArray[3]
this.hour = dateArray[4]
this.minutes = dateArray[5]
this.secondes = dateArray[6]
}
function Run(values) {
this.algorithm = values["log"]["Algorithm used"]
this.weight = values["log"]["Weight"]
this.value = values["log"]["Value"]
this.date = new DateValue(values["log"]["Date"])
this.solutions = []
for(i = 0; i < values["datas"].length; i++) {
this.solutions.push(new Solution(values["datas"][i]))
}
}
$.ajax({
url: 'api.php', // the data sent by the API is a valid JSON
dataType: 'json',
success: function(data, status) {
console.log(data);
for(i = 0; i < data.length; i++) {
console.log(data[i]);
var run = new Run(data[i])
runs.push(run);
}
}
});
在console.log(data)for循环正确打印所有从API收到的DATAS,但之前console.log(data[i])只打印数组的第一个元素,我不明白为什么。
繁星coding
相关分类