首先要知道js中字符串、数组和json是如何互相转换的。
数组转字符串
var arr = [1,2,3,4];
var str = arr.join(',');
console.log(str); //显示结果: 1,2,3,4
字符串转数组
var str = '1,2,3,4';
var arr = str.split(',');
console.log(arr); // 显示结果:["1", "2", "3", "4"](数组)
字符串转数组,数组转json,json转数组
var str = '1,2,3,4';
var arr = str.split(',');
var strify = JSON.stringify(arr);//将数组转化为json字符串
console.log(arr); // 显示结果:["1", "2", "3", "4"](数组)
console.log(strify); //显示结果: ["1", "2", "3", "4"](json字符串,"["和"]"也是字符串的一部分)
var arrParse = JSON.parse(strify);
console.log(arrParse); //显示结果:["1", "2", "3", "4"](数组)
前端js代码:
<script type="text/javascript">
$(function(){
$("#reserve_btn").click(function(){
if($('#dg').datagrid('getSelections').length==0){
$.messager.alert("消息提示",'请选择要预订的房间','error');
}else{
var room_nos=[];
var array=$('#dg').datagrid('getSelections');
for(var i in array){
room_nos.push(array[i].room_no);
}
console.log(room_nos);
$.post('../clientController/reserveRooms.action',{'room_nos':room_nos.join(',')},function(flag){
alert(flag)
})//方法一:数组转化成字符串,传字符串到后台
/* $.post('../clientController/reserveRooms.action',{'room_nos':JSON.stringify(room_nos)},function(flag){
alert(flag)
})//方法二:数组转化成json字符串,传json字符串到后台
$.ajax({
url: '../clientController/reserveRooms.action',
type: 'post',
data: {'room_nos':room_nos},
traditional:true,//用传统方式序列化数据
success:function(flag){
alert(flag)
}
})//方法三:通过设置traditional属性为true直接传递数组 */
}
})
})
</script>
后台controller代码
@RequestMapping(value="reserveRooms")
@ResponseBody
public String reserveRooms(@Param("room_nos") String room_nos) {
System.out.println(room_nos);
return "OK";
}