javascript - JSON.parse 没有错误但不起作用

标签 javascript jquery json ajax

我正在基于 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/

相关文章:

php - JQuery 运行速度太快?

javascript - Event.target 检查发生得太快

jquery - 更改 jquery 拖放列表中前 10 个列表项的颜色

javascript - 如何正确路由到 Express 中的 JSON 条目

javascript - js_of_ocaml 和 Deriving_Json

javascript - 如何点击<li>的自包含<a>?

javascript - 无法从子状态正确初始化父组件中的状态

javascript - JQuery 查找和更改具有数据属性的所有元素的类

javascript - 使用 td 属性计算产品总和

javascript - 添加变量名称而不是其值,javascript