繁体   English   中英

将json数组解析为java字符串数组

[英]Parse json array to java string array

我正在构建一个引导多选工具,如下所示:

多选工具

首先,将multiselect工具中的选定值转换为javascript数组,如下所示:

var authors = [];

$("#selectAuthors option:selected").each(function(i, value) {
    authors.push($(this).val());
});

然后使用ajax将该数组传递给servlet:

$.ajax({
    method : "POST",
    url : "../addBook",
    data : {
        addTitle : $("#addTitle").val(),
        addPublisher : $("#selectPublisher").val(),
        addAuthors : JSON.stringify(authors),
    }
})

在servlet中,该数组被解析为java字符串数组:

String[] authorNames = request.getParameterValues("addAuthors");

问题是,我在servlet中获得的java字符串数组并不是我想要的。 例如,如果我在多重选择工具中选择“ author1”和“ author2”:

预期的字符串数组我应该得到:

{"author1", "author2"}, string length: 2

我实际上得到的字符串:

{"["author1", "author2"]"}, string length: 1

如果我只是在多选工具中选择一个选项,例如“作者”。 在servlet中,我将得到以下信息:

Print out authorNames[0]: ["author"]
Print out authorNames[0].length: 10  
//The legnth of "author" is 6, but the length of "["author"]" is 10

你能解释我做错了什么吗? 提前致谢。

我首先将“作者”解析为字符串,然后在servlet中使用string.split(“,”)将字符串转换为字符串数组。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM