javascript - 使用 JSON 从 Ajax 调用获取未定义的数组类型

标签 javascript java jquery json ajax

所以我正在制作一个网络应用程序,您可以在其中玩数独游戏,但后端是用 Java 编写的。我制作了一个 servlet 以通过 ajax 与我的 Jquery 通信。

我使用这个 servlet 通过 Ajax 将我生成的数组(数独)发送到我的 web 应用程序。但是当我做一个 typeof 时,它似乎是未定义的。这意味着我无法对数组进行任何操作

这是我的 Ajax 调用:

    $.ajax({
    url:"/2017_S2_Group_18/API/*",
    dataType:"json",
    success: function(data) {
        for(var i = 0; i<81;i++){
            originalSudoku[i] = $(data).attr("sudokuArray")[i];
            changedSudoku[i] = $(data).attr("sudokuArray")[i];
        }           
    }
});

orginalSudoku 是不可修改的数组,changedSudoku 是要修改的数组。

这是我通过浏览 Ajax 调用的 URL 获得的输出。

{"数独数组":[7,6,8,1,9,2,3,4,5,1,9,2,4,3,5,6,7,8,4, 3,5,7,6,8,9,1,2,8,7,9,2,1,3,4,5,6,2,1,3,5,4,6,7,8, 9,5,4,6,8,7,9,1,2,3,9,8,1,3,2,4,5,6,7,3,2,4,6,5,7, 8,9,1,6,5,7,9,8,1,2,3,4]}

如何将我的类型解析/更改为字符串、字符或整数?

最佳答案

问题是因为 data 是一个对象,而您正在尝试使用 jQuery 的 attr() 方法(用于 DOM 元素)来访问它的属性.那是行不通的。

相反,您可以像访问 Javascript 中的任何普通对象一样访问 data 的属性。试试这个:

success: function(data) {
  for (var i = 0; i < data.sudokuArray.length; i++) {
    originalSudoku[i] = data.sudokuArray[i];
    changedSudoku[i] = data.sudokuArray[i];
  }           
}

关于javascript - 使用 JSON 从 Ajax 调用获取未定义的数组类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44006449/

相关文章:

javascript - 我可以使用什么 javascript 代码/库从网页中包含的小型 iframe 打开浏览器窗口弹出窗口?

javascript - 使用map方法对数组进行分组

jquery - 这是偶数还是奇数元素?

javascript - 从 jQuery 选择中删除元素

javascript - Angular2,doe 的 EventEmitter 需要 zone.run?

javascript 设置间隔()

java - 检查长度时用户名正则表达式不起作用

通过对象调用Java接口(interface)方法

java - 如何正确清除 Java 中的整个二叉树?

javascript - 每 5 秒刷新一次类