[英]Incompatible types when using GSON
首先:這是我第一次使用GSON。
嘗試解析一些JSON時,出現“不兼容的類型” ...
Gson gson = new Gson();
PlayerData data = gson.fromJson(response, PlayerData.class); // Incompatible types...
PlayerData
是一個內部類:
class PlayerData {
public Point position;
public String mapname;
public int level;
public PlayerData() {}
}
是什么原因造成的? 在GSON文檔中,很明顯有一個方法public <T> T fromJson(String json, Class<T> classOfT) throws JsonSyntaxException
,我正在(AFAIK)進行操作,就像Google在其GSON用戶指南中一樣。
編輯:
XCode做了一些奇怪的事情,當我嘗試使用Terminal
進行編譯時,一切正常,除了我對服務器的請求外,由於response
仍然為空,因此導致了兩個NPE。 多虧了maaartinus,我才知道應該沒有編譯器錯誤,所以我嘗試在沒有XCode的情況下進行編譯。
嘗試將內部類設為static
否則您將需要按照《 Gson用戶指南》中的說明為其自定義InstanceCreator
Gson不能自動反序列化純內部類,因為它們的無參數構造函數還需要引用包含對象,而該對象在反序列化時不可用。 您可以通過使內部類靜態化或為其提供自定義InstanceCreator來解決此問題。
對我來說,它可以編譯,但是我必須用Gson
代替GSON
。 編寫此問題時您要么草率,要么使用的是我從未聽說過的“ GSON”。
你的response
是一個String
嗎?
一旦運行,您將需要Vrushank Desai的答案。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.