1. 程式人生 > >後臺接收前臺 String json 取單個值問題-java

後臺接收前臺 String json 取單個值問題-java

這個玩意兒困擾了我好久,就是用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); }

新手上路,
請大家參考!