gpt4 book ai didi

java - Spring MVC 中的 JSON 到 Java 对象映射结果 400(错误请求)

转载 作者:行者123 更新时间:2023-11-30 09:15:09 27 4
gpt4 key购买 nike

提交表单时出现 400(错误请求)错误。我正在使用 Jackson API jackson-core-asl-1.9.10.jar 和 jackson-mapper-asl-1.9.10.jar。

我可以接收 JSON 但无法提交。

myscript.js

var app = angular.module('project', ['ngRoute']);
app.controller('projectFormCtrl',["$scope", "$http", function($scope, $http) {

$scope.submitProject = function() {
console.log($scope.project); //Works fine
$http.post('saveProject',$scope.project).success(function () {
console.log($scope.project);
});
};

}]);

WebController.java

@RequestMapping(value="/saveProject", method=RequestMethod.POST)
public @ResponseBody ProjectDetails submitProject(@RequestBody ProjectDetails projectDetails) {
System.out.println(projectDetails);
return projectDetails;
}

最佳答案

我也遇到过同样的Bad request问题。我通过执行以下代码解决了它。
您可以通过 JSON.stringify(array) 将数组转换为 json 字符串来将数组发布到 Controller 。
我已经使用 push() 将多个对象推送到一个数组中。

    var a = [];
for(var i = 1; i<10; i++){
var obj = new Object();
obj.name = $("#firstName_"+i).val();
obj.surname = $("#lastName_"+i).val();
a.push(obj);
}

var myarray = JSON.stringify(a);
$.post("/ems-web/saveCust/savecustomers",{myarray : myarray},function(e) {

}, "json");

Controller :
您可以使用 jackson 来处理 json 字符串。
Jackson 是一个高性能 JSON 处理器 Java 库。

    @RequestMapping(value = "/savecustomers", method = RequestMethod.POST)
public ServiceResponse<String> saveCustomers(ModelMap model, @RequestParam String myarray) {

try{
ObjectMapper objectMapper = new ObjectMapper().configure(DeserializationFeature.ACCEPT_SINGLE_VALUE_AS_ARRAY, true);
List<DtoToMAP> parsedCustomerList = objectMapper.readValue(myarray, new TypeReference<List<DtoToMAP>>() { });
System.out.println(" parsedCustomerList :: " + parsedCustomerList);
}catch (Exception e) {
System.out.println(e);
}
}

注意:确保您的 dto 应包含与您使用数组对象发布时相同的变量名称。
在我的例子中,我的 dto 包含 firstName,lastName,因为我用数组对象发布。

jackson 依赖:

    <dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-core-asl</artifactId>
<version>1.9.3</version>
</dependency>
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-mapper-asl</artifactId>
<version>1.9.3</version>
</dependency>

关于java - Spring MVC 中的 JSON 到 Java 对象映射结果 400(错误请求),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20066124/

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