前端向後臺傳送陣列引數的3種方法
阿新 • • 發佈:2018-12-09
首先要知道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";
}