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”); –