gpt4 book ai didi

java - 在 Spring MVC Controller 中反序列化 json 数组

转载 作者:搜寻专家 更新时间:2023-11-01 03:04:26 24 4
gpt4 key购买 nike

我正在发送一个 json 对象列表并尝试在我的 Spring Controller 中反序列化它。但我一直收到“错误请求”错误,结果状态代码为 415。但是,我的 json 数组是有效的。

json 是 -

{ "users": [ { "userName": "john", "email": "john@gmail.com", "user_id": "u223344" }, { "userName": "Smith", "email": "smith@gmail.com", "user_id": "u223345" } ] }

Ajax调用如下-

$.ajax({
url: $("#addNewUser").attr("action"),
data: JSON.stringify({users : dataToSend}),
dataType: 'json',
type: "POST",
beforeSend: function(xhr) {
xhr.setRequestHeader("Accept", "application/json");
xhr.setRequestHeader("Content-Type", "application/json");
},
success: function(data){
alert('success= ' + data);
},
error:function(data,status,er) {
alert("error: "+ data.responseText +" status: "+status+" er:"+er);
}

});

包装类如下。用户和 UserWrapper 类 -

public class User {

private String email;

private String userName;

private String user_id;

//getters and setters

public class UserWrapper {

private List<User> userList;

//getter and setter

最后是 spring MVC Controller -

@RequestMapping(value="/user/add", method=RequestMethod.POST, 
produces = MediaType.APPLICATION_JSON_VALUE, consumes = MediaType.APPLICATION_JSON_VALUE)
@ResponseBody
public void createTeamMember(@RequestBody UserWrapper userWrapper) {

try{
for(User user : userWrapper.getUserList()){
System.out.println(user.getEmail());
}
}catch(Exception ex){
ex.printStackTrace();
}

}

我在 pom.xml 中添加了对 jackson-core 和 jackson-mapper 的依赖。我正在使用 Spring 4.0.3。感谢您的帮助。

最佳答案

正如@shazin 所说,您很可能针对问题发布了错误的方法,或者如果没有,只需按照他的建议进行更改。

您将需要另一个修复程序,即将 usersList 属性从 UserWrapper 重命名为 users 以便它与 JSON 属性相匹配已发送。

我们进行了这些修复,您应该不会再遇到其他问题,因为您的请求没问题。

关于java - 在 Spring MVC Controller 中反序列化 json 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27613613/

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