带ajax请求的springmvc

带ajax请求的springmvc,ajax,spring-mvc,jackson,Ajax,Spring Mvc,Jackson,我通过ajax从控制器请求数据,但它无法将json对象转换为java对象。我正在使用jackson 2.2.3和Spring 4.0.0。你能帮我找出哪里做错了吗?谢谢 epscms-servlet.xml的一部分: <bean id="jacksonMessageConverter" class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"></bean>

我通过ajax从控制器请求数据,但它无法将json对象转换为java对象。我正在使用jackson 2.2.3和Spring 4.0.0。你能帮我找出哪里做错了吗?谢谢

epscms-servlet.xml的一部分:

<bean id="jacksonMessageConverter" class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"></bean>
    <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
           <property name= "messageConverters" >
             <list>
                 <ref bean="jacksonMessageConverter" />
             </list>
        </property>
</bean>
控制器:

@RequestMapping(value="/add/batch", method=RequestMethod.POST,    consumes=MediaType.APPLICATION_JSON_VALUE)

public String batchAdd(@RequestBody Classification c){

    return "failure";
}
Classification.java

public class Classification {
    private int orderId;
    private String className;
    private int parentId;
    private int newsType;
    //getters and setters..
}
如果我将控制器方法更改为

public String batchAdd(@RequestBody String cla){

        return "failure";
    }

它工作正常,我可以得到json字符串。以前是否有其他人遇到过此问题?

在将数据发布到端点之前,您可能需要将其JSON.stringify()转换为您的数据:

...
type : "POST",
data : JSON.stringify(data),
dataType: "json",
...

下面是一些关于stringify的文章。根据需要支持的浏览器,您可能还需要

谢谢Matt。事实上,我以前试过,但没有成功。最后,我自己使用
com.fasterxml.jackson.databind.ObjectMapper
映射json数据。
...
type : "POST",
data : JSON.stringify(data),
dataType: "json",
...