簡體   English   中英

使用GSON時類型不兼容

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM