gpt4 book ai didi

javascript - 如何在 jQuery ajax 调用中使用数组字符串?

转载 作者:行者123 更新时间:2023-11-30 19:34:18 25 4
gpt4 key购买 nike

通过使用 jQuery,我试图在后端保存我的字符串数组,下面是我的方法。

1.使用jQuery ajax发送数组。

var tagTexts = $(ul li.select2-selection__choice")
.toArray()
.map(function(i){
return i.innerText;
});
tagTexts = tagTexts.join(',');
$.ajax({
type: 'POST' ,
url: '/tag/tagList',
dataType: 'json',
data: {
tagTexts: tagTexts
},
error: function(err) {
console.log(err);
},
success: function(response) {
//Process Response
}

});

2.后台获取如下:

@ResponseBody
@RequestMapping(value = "/tag/tagList", method = RequestMethod.POST)
public String saveTagList(HttpServletRequest request,
@RequestParam(value = "tagTexts", required = false)List<String>tagTexts) {

System.out.println(tagTexts);
String response = tagService.saveTags(tagTexts);
return response;
}

a) 使用数组连接方式

下面是抓取到的字符串数组:

["Drone", "Richard Feynman, PHD", "Yatch"]

在使用数组连接方法后,这会发生如下变化:

Drone,Richard Feynman, PHD,Yatch 

在 java 执行(后端)中显示如下:

[Drone, Richard Feynman, PHD, Yatch]

b) 使用 JSON.stringify 方法

使用JSON.stringify方法后,抓取的数组显示如下:

["Drone", "Richard feynman, PHD", "Yatch"]

这在 js 级别看起来不错,但是这一整行被认为是一个字符串,并且在后端显示如下:

[["Drone", "Richard feynman, PHD", "Yatch"]].

我希望我的代码按如下方式工作:

  1. 捕获的原始数据元素中的逗号字符不应拆分。
  2. 整个数组不应在后端显示为字符串。

有没有更好的方法来实现这个目标?

最佳答案

您可以像这样创建一个自定义请求对象:

public class TagListRequest {
private List<String> tagTexts;
// getter and setter
}

您现在可以在您的请求映射中将此与 @RequestBody 一起使用:

@ResponseBody
@RequestMapping(value = "/tag/tagList", method = RequestMethod.POST)
public String saveTagList(@RequestBody TagListRequest request) {
System.out.println(request.getTagTexts());
String response = tagService.saveTags(request.getTagTexts());
return response;
}

Spring 在内部使用 Jackson 将请求的 JSON 主体映射到 TagListRequest 对象.

使用此解决方案,您无需使用分隔符手动解析数据。

关于javascript - 如何在 jQuery ajax 调用中使用数组字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56102194/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com