1
這是我的JSON數據:反序列化JSON與GSON
{
"boards": [
{
"board": "3",
"title": "3DCG",
"ws_board": 1,
"per_page": 15,
"pages": 11
},
{
"board": "a",
"title": "Anime & Manga",
"ws_board": 1,
"per_page": 15,
"pages": 11
},
{
"board": "adv",
"title": "Advice",
"ws_board": 1,
"per_page": 15,
"pages": 11
},
...
]
}
這是我反序列化代碼:
JSONObject json = readJsonFromUrl("http://api.4chan.org/boards.json");
String jsonBoards = json.toString();
Gson gson = new Gson();
Map<String, Object> map = new HashMap<String,Object>();
map = (Map<String,Object>) gson.fromJson(jsonBoards, map.getClass());
但它並不把工作做好。我需要一種方法來獲取每個電路板的電路板名稱,標題和所有信息。當我使用map.get()
;關鍵是「董事會」,但我想要一個每個董事會和標題的地圖等。
行'性映射MAP =新的HashMap();'是不必要的,因爲您正在創建一個'HashMap'對象,你永遠不會使用。您應該將其更改爲'Map map;'或'Map map = null;'或將最後兩行合併爲Map map =(Map)gson.fromJson(...);'。 – gdiazc
好像你應該調用'get(「boards」)'來得到'JSONObject'的'JSONArray's,然後遍歷這個數組來獲得你需要的任何數據,並把它放到你需要的任何數據結構中。你有什麼具體問題? – yshavit
問題是我不知道該怎麼做。我正在通過Json和Gson javadocs閱讀,但仍然無法弄清楚。我試圖使用JSONArray,但我得到一個錯誤。我試過這個json2 =(JsonArray)map.get(「boards」); –