spring MVC 传入 json 数组

使用环境:spring 4.2 ; jackson 2.6

业务场景: 批量添加用户;使用@RequestBody注解自动设置list类型的数据

第一步:添加依赖(build.gradle)

    compile 'com.fasterxml.jackson.core:jackson-core:2.6.3'
    compile 'com.fasterxml.jackson.core:jackson-databind:2.6.3'
    compile 'com.fasterxml.jackson.core:jackson-annotations:2.6.3'
    compile 'org.codehaus.jackson:jackson-core-asl:1.9.13'

spring依赖省略

第二步:配置

在webAplicationContext的XML文件中配置


    
    <mvc:annotation-driven>
        <mvc:message-converters>
            <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"/>
        mvc:message-converters>
    mvc:annotation-driven>

注意点:类名为MappingJackson2HttpMessageConverter(对应Jackson2.x版本)

第三步:后台Controller方法

    @RequestMapping("/batchAdd")
    @ResponseBody
    public ResultDTO addUsers(@RequestBody List users) {
        userService.batchAdd(users);
        return new ResultDTO(true, ReturnCodeEnum.ADD_COMPLETE.getMessage());
    }

注意点: 方法参数前需要添加@RequestBody;只支持单参数

第四步:前端

var uses = [{name:'jack1', sex:1},{name:'jack2', sex:0},{name:'jack3', sex:1}];
$('#batchAdd').click(function () {
    $.ajax({
        url:'/apple/base/user/batchAddCached',
        type:'post',
        contentType:"application/json;charset=utf-8",
        data:JSON.stringify(uses),
        success:function (result) {
            console.log(result);
        }
    });
});

注意点:1.需要添加contentType:”application/json;charset=utf-8”
2.data项只能是json字符串

你可能感兴趣的:(spring)