Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用jQuery将包含对象数组的对象数组传递给SpringMVC控制器?_Java_Jquery_Json_Spring_Spring Mvc - Fatal编程技术网

Java 如何使用jQuery将包含对象数组的对象数组传递给SpringMVC控制器?

Java 如何使用jQuery将包含对象数组的对象数组传递给SpringMVC控制器?,java,jquery,json,spring,spring-mvc,Java,Jquery,Json,Spring,Spring Mvc,我试图通过AJAX调用从客户端向Spring-MVC-RestController发送一个pojo数组,每个pojo都包含一个其他pojo的列表 我有以下作为提交的POJO: public class Commit { private long revision; private Date date; private String author; private String comment; private String akuiteo; private List<ChangedPa

我试图通过AJAX调用从客户端向Spring-MVC-RestController发送一个pojo数组,每个pojo都包含一个其他pojo的列表

我有以下作为提交的POJO:

public class Commit {

private long revision;
private Date date;
private String author;
private String comment;
private String akuiteo;

private List<ChangedPath> changedPathList = new ArrayList<ChangedPath>();
我有以下Spring控制器:

@RestController
public class AkuiteoMapController {

static Logger log = Logger.getLogger(PatchDemoApplication.class.getName());

public AkuiteoMapController() {
    // TODO Auto-generated constructor stub
}

@RequestMapping(value="/akuiteoMap")
@ResponseBody
public AkuiteoMap getAllCommits(@RequestBody Commit[] commits) throws IOException{
    log.info("inside akuiteoMap");
    AkuiteoMap akuiteoMap=new AkuiteoMap();
    akuiteoMap= UserService.getAkuiteoMap(commits);
    log.info("akuiteo map: "+akuiteoMap);
    return akuiteoMap;
}
}

在客户端,我尝试执行以下ajax调用:

$.ajax({
        url: 'akuiteoMap',
        method: 'POST',
        dataType: 'json',
        contentType: 'application/json',// charset=utf-8',
        data:{
            commits:JSON.stringify(commits),
            //commits:commits
        },
        success: function(data){
            console.log(data);
        }
    })
我得到以下错误:

2017-06-26 10:58:40.764  WARN 4788 --- [nio-8080-exec-8] 
.w.s.m.s.DefaultHandlerExceptionResolver : Failed to read HTTP message: 
org.springframework.http.converter.HttpMessageNotReadableException: 
JSON parse error: Unrecognized token 'commits': was expecting ('true', 
'false' or 'null'); nested exception is 
com.fasterxml.jackson.core.JsonParseException: Unrecognized token 'commits': 
was expecting ('true', 'false' or 'null')
at [Source: java.io.PushbackInputStream@e57cb2a; line: 1, column: 9]

我做错了什么?

将JSON字符串作为接受控制器方法的数据传递

$.ajax({
    url: 'akuiteoMap',
    method: 'POST',
    dataType: 'json',
    contentType: 'application/json',,
    data : JSON.stringify(commits),
    // ----^^^^^^^^^^^^^^^^^^^^^^^----
    success: function(data){
        console.log(data);
    }
})

这很奇怪,但看看我发现了什么,试试看:
““提交”:“+JSON.stringify(commissions)+””
。那家伙也有类似的经历issue@dannemp在我看来,我们尝试过这种方法,但你写下它对你没有帮助
$.ajax({
    url: 'akuiteoMap',
    method: 'POST',
    dataType: 'json',
    contentType: 'application/json',,
    data : JSON.stringify(commits),
    // ----^^^^^^^^^^^^^^^^^^^^^^^----
    success: function(data){
        console.log(data);
    }
})