SpringMVC日常:AJAX传递JSON格式的数组和Controller如何接收

在前端js的ajax方法中,data传递到后台的数据包含如下类型的json格式的数组参数。

originData = [
    {name: '成都市', value: undefined},
    {name: '自贡市', value: undefined},
    {name: '攀枝花市', value: undefined},
    {name: '泸州市', value: undefined},
    {name: '德阳市', value: undefined},
    {name: '绵阳市', value: undefined},
    {name: '广元市', value: undefined},
    {name: '遂宁市', value: undefined},
    {name: '内江市', value: undefined},
    {name: '乐山市', value: undefined},
    {name: '南充市', value: undefined},
    {name: '眉山市', value: undefined},
    {name: '宜宾市', value: undefined},
    {name: '广安市', value: undefined},
    {name: '达州市', value: undefined},
    {name: '雅安市', value: undefined},
    {name: '巴中市', value: undefined},
    {name: '资阳市', value: undefined},
    {name: '阿坝藏族羌族自治州', value: undefined},
    {name: '甘孜藏族自治州', value: undefined},
    {name: '凉山彝族自治州', value: undefined}
];

在前端中ajax的写法:因为我们要传递的数据是json格式数组,需要使用JSON.stringify方法将json对象转换为字符串形式传递给后端。

function AjaxSubmit() {
    $.post({
        url: '/getGlobalData',
        data: {'originData': JSON.stringify(yuanshiData)},
        dataType: "json",//返回的数据类型格式
        async: false,
        success: function (data) {
            globaldata = data
        }
    })
}

 

Controller中的参数写法:

@RequestParam("originData") String originData_json

这样接收到的数据就是json格式字符串,接下来使用jackson对json字符串进行解析。

ObjectMapper om = new ObjectMapper();
//解析前端传来的json字符串为List集合
List<Map<String, Object>> originData = om.readValue(originData_json, List.class);

注意:当前端请求参数与Controller方法参数名不一致时,需要在参数前加上@RequestParam注解进行参数绑定。

@RequestParam(value = "请求参数名",required = false,defaultValue = "默认值")

 

AnonyEast

一个爱折腾的技术萌新

留下你的评论

*评论支持代码高亮<pre class="prettyprint linenums">代码</pre>

相关推荐