JSONArray遍歷

一.需求描述:

需要把json數組JSONArray對象進行遍歷、轉換爲List對象

二.需求分析:

1.首先我想到的是直接遍歷,通過JSONObject對象獲取指定k的v值

for (JSONObject a : jsonArray){

   list.add(a.get("k"))
}

但是編譯異常,顯示遍歷對象必須是Object對象,我當時就懵逼了,json數組不是放json。。

2.查看源碼:

實現的是List<Object>方法,醉了.....

3.嘗試強制轉型JSONObject,報錯:

for (JSONObject a : jsonArray){
   JSONObject x = (JSONObject) a
   list.add(x.get("k"))
}

三.解決方法:

Object需要先轉JSON,然後才能轉JSONObject:  

JSON.toJSON

for (JSONObject a : jsonArray){
   JSONObject x = (JSONObject) JSON.toJSON(a)
   list.add(x.get("k"))
}

或者:

List list = conditions.stream().map(obj -> {
            JSONObject jsonObj = (JSONObject) JSON.toJSON(obj);
            return jsonObj.getString("status");
        }).collect(Collectors.toList());

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章