在前端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 = "默认值")