好上我有一個JSON在未來是這樣的:GSON只有專心內部對象
{count:xxx, important:[{...}]}
所有我關心的重要對象。有什麼我可以用自定義的反序列化器或任何可以讓GSON反序列化那個重要的json對象的東西嗎?
而且我想反序列化對象的方式看是這樣的:
List<Important> = Gson.fromJson(arg0, new TypeToken<ArrayList<Important>>(){}.getType());
好上我有一個JSON在未來是這樣的:GSON只有專心內部對象
{count:xxx, important:[{...}]}
所有我關心的重要對象。有什麼我可以用自定義的反序列化器或任何可以讓GSON反序列化那個重要的json對象的東西嗎?
而且我想反序列化對象的方式看是這樣的:
List<Important> = Gson.fromJson(arg0, new TypeToken<ArrayList<Important>>(){}.getType());
是的,你可以使用JsonParser
類從GSON圖書館閱讀它作爲一個JSONObject。然後,拉出你需要的內部對象,並使用Gson來填充你的Java類。
例子:
Reader jsonReader =
new BufferedReader(
new InputStreamReader(getIStream("myFile.json")));
JsonParser parser = new JsonParser();
JsonObject top = parser.parse(jsonReader).getAsJsonObject();
JsonElement importantEl = top.get("important");
//Parse the important element into whatever structure you're creating
Gson gson = new Gson();
List<Important> important
= Gson.fromJson(importantEl, new TypeToken<ArrayList<Important>>(){}.getType());
不應該'重要'是'el'?我不知道這是如何工作的 - 它創建了一個json樹嗎? – maaartinus
是的,對不起。我正在爲我正在編寫的一個項目編寫一些代碼。是的,JsonObject是頂級json樹的解析版本,JsonElement類型可以表示json數組或json對象。 Gson知道如何讀取它並將其轉換爲您通過的類類型 – Collin
您有什麼意義,但它會毀掉我的通用類,所以我會以其他方式解決它... – arinte
做完最近的一些工作GSON,我只是咬了子彈,創造了所有的對象到我需要的人。您可以省略字段名稱,這些對象將被忽略。 – lynks