後臺接收前臺 String json 取單個值問題-java
阿新 • • 發佈:2019-02-14
這個玩意兒困擾了我好久,就是用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);
}
新手上路,
請大家參考!