我正在基于 ajax 进行网页设计作业。我在使用 JSON.parse() 函数时遇到问题。问题如下,我使用 ajax 对 JSON 数据库执行 get 请求:
artist_list = $.ajax({
dataType: "json",
async: false,
method: "GET",
url: "/database/artists.json",
error: function (xhr) {
console.log("AJAX error:", xhr.status);
},
success: function(xhr, responseText) {
console.log("Ajax operation succseded the code was:", xhr.status);
console.log("This is the output", responseText);
response = responseText;
console.log("Parsing artist list");
JSON.parse(response);
console.log("Artist list parsed");
},
done: function(data, textStatus, jqXHR){
console.log("data:", data);
console.log("Response text",jqXHR.responseText);
}
})
responseText 的控制台日志与我想要的 JSON 文件匹配,但是, 当我通过 for 循环运行响应文本时,日志会逐个字符地返回 JSON 文件:
artist_list = artist_list.responseText;
JSON.parse(artist_list);
console.log(artist_list);
for(var i = 0; i < 1; i++) {
console.log("generating artist,", i);
console.log("which is:", artist_list[i]);
index = parseInt(i);
index = new artist_lite(artist_list[i]);
artist_lite_dict.push(index);
}
控制台返回:
generating artist, 0
which is: {
由于我试图传递的 JSON 对象的长度,该列表仅限于一个。 JSON 可以在这里找到 https://github.com/Stephan-kashkarov/Collector/blob/master/main/database/artists.json以及用于测试目的的整个代码。
感谢您的帮助! - 斯蒂芬
最佳答案
您需要将 JSON.parse(artist_list);
的结果保存到某个变量中。我想在你的代码中你想这样解决它:
artist_list = JSON.parse(artist_list);
关于javascript - JSON.parse 没有错误但不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49372937/