这个玩意儿困扰了我好久,就是用bootstrap-table引起的。
选中表格内容,然后
<table id="table"></table>
//javascript
var selects = $("#table").bootstrapTable('getSelections');
$.ajax({
url:"请求地址",
data:{obj:JSON.stringify(selects)},
type:"post",
dataType:"json",
async:false,
success:function(data){
}
});
把选中项的数据传入后台
后台接受后打印出来看是一个完整的json格式
就是这种格式:[{“xx”:”xx”,”aa”:”aa”},{“xx”:”xx”,”aa”:”aa”}]
我后台接收是这样的
public 类型 方法名(String obj){
System.out.println(obj);
//打印出来 [{"xx":"xx","aa":"aa"},{"xx":"xx","aa":"aa"}]
}
那么问题来了,怎么获取里面的值?
试过很多方法都不实用,因为它的格式已经对了。
再去转换就会转错,所以想把他放入JSONArray中
很多人会这样放:
JSONArray jsonArray = new JSONArray(obj);
//但是放进去大多数人的会报错,因为类型问题不对,报错内容为不是List<Object>这种
还有的人会这样
JSONArray jsonArray = new JSONArray();
jsonArray.add(obj);
//这样是加进去了,但是是一整块加进去的,无法分解出来。
最后,我的解决办法是这样
//这样可以完全转换成为JSONArray内部正常内容
JSONArray arr = JSONArray.parseArray(obj);
//通过for遍历
for(int i=0;i<arr.size();i++){
JSONObject jsonObject = arr.getJSONObject(i);
//如果你里面有id字段
String id = jsonObject.getString("id");
//成功遍历出每一条数据id对应的值
System.out.println(id);
}
新手上路,
请大家参考!