javascript - 将 Java List<String> 转换为 Javascript 数组

标签 javascript java jquery spring-mvc jquery-ui

我正在使用 jQuery UI 自动完成来显示文本输入字段的建议。 建议存储在名为“建议”的 Javascript 数组中。

我正在尝试从数据库中获取建议数组的字符串值,但无法将 List 对象转换为 Javascript 数组。

Javascript:

var suggestions = [];
$.get('/mywebapp/autocompleteplayer.html', function(data){
    parsed = JSON.parse(data);
    suggestions = parsed.split(",");
}, "json");

$('#autocompleted').autocomplete({
    data: suggestions,
    minLength: 3
});

Spring MVC Controller :

@Controller
public class AutocompletePlayerController {

    @RequestMapping(value = "/autocompleteplayer")
    public List<String> getPlayerSuggestions(){

        List<String> myList;
        //code that fills myList with all of the players' full names from the database, omitted for brevity
        return myList;
    }
}

我知道我没有正确解析 AJAX 响应,因为我已经从浏览器控制台检查了建议数组有 0 个元素。谁能帮我?我在这里做错了什么?

最佳答案

您需要在 js 中像这样使用它(数据是响应实体,而不是数据 - 它位于 data.data 中):

$.get('/mywebapp/autocompleteplayer', function(data){
    suggestions = data.data; 
    $('#autocompleted').autocomplete({ // not sure how to use your plugin
        data: suggestions,
        minLength: 3
    });
}, "json");

并在您的 Spring Controller 中添加 @ResponseBody 注释

@RequestMapping(value = "/autocompleteplayer")
@ResponseBody
public List<String> getPlayerSuggestions(){

    List<String> myList;
    //code that fills myList with all of the players' full names from the database, omitted for brevity
    return myList;
}

不需要JSON.parse任何东西,jquery 已经做到了这一点。

/mywebapp/autocompleteplayer.html 听起来也是错误的。路线是 autocompleteplayer 没有 .html

除此之外,建议是异步创建的。因此,自动完成中的数据将始终为空。我自己没有使用该插件,因此可能有数据更新函数,否则请尝试将其放入 $.get() 函数回调中。

关于javascript - 将 Java List<String> 转换为 Javascript 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45196859/

相关文章:

javascript - 无法使用 javascript 获取 HTML4 中的 HTML5 视频 id?

javascript - HTML 元素类是否应该根据其用途使用前缀?

java - 使用 ByteBuddy 检测一组接口(interface)的所有实现

java - 如何找到为 Spring boot 服务记录的请求的目标 URL

java - Spring Java Maven项目+模块设计

javascript - 页面滚动上的垂直滚动 div 页面分隔符,视差?

javascript - Cors 和 header

javascript - JSON 解析问题

javascript - parent 删除不适用于 append 元素

javascript - 名称为 div 数据值的函数