gpt4 book ai didi

java - 使用 Jersey 发送 JSON 字符串数组

转载 作者:行者123 更新时间:2023-12-01 12:13:25 27 4
gpt4 key购买 nike

我正在尝试发送 JSON 字符串数组并在服务器端执行一些任务。这是我的 JS:

var x = ["Salam","Saghol","11"]

$.ajax({
url: '../rest/group/addusers',
type: 'POST',
data: JSON.stringify(x),
contentType: 'application/json',
dataType: 'json',
async: false,
success: function(msg) {
alert(msg);
}
});

还有我的 Java 方法:

@POST
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
@Path("/addusers")
public Response addUsersToGroup(List<String> users) {
System.out.println(users);
return Response.status(Response.Status.OK).entity("Salam").build();
}

当我发送请求时,我收到“415(不支持的媒体类型)”错误消息。

请帮助我将数组元素(字符串)传递给下面的方法。

提前致谢。

附注这是我的标题: enter image description here

最佳答案

这里的问题是“users”参数无法反序列化。虽然我的想法可能很清楚,但逻辑在编程上不够正确。

通常,来自 POST 的数据是使用查询参数提取的(使用“=”、“?”、“&”作为分隔符)。就我而言,我将数据直接放入 POST 输出流。并且以字符串表示形式获取所有数据更符合逻辑。

所以我将代码更改为:

@POST
@Produces(MediaType.TEXT_HTML)
@Consumes(MediaType.APPLICATION_JSON)
@Path("/addusers")
public Response addUsersToGroup(String users) throws IOException {
ObjectMapper mapper = new ObjectMapper();
List<String> l = mapper.readValue(users, List.class);

for (String s : l) {
System.out.println("Item: "+s);
}


return Response.status(Response.Status.OK).entity("Salam").build();
}

问题已经解决了。感谢您的关注。

关于java - 使用 Jersey 发送 JSON 字符串数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27144124/

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