2011-10-28 53 views
7

的名單,我發現這篇文章:http://www.dev-articles.com/article/Google-gson-and-list-of-objects-386003使用GSON解析並放入對象

它看起來像它試圖做我想做的,這是解析的json並將它們放入對象的名單。

我沒有得到什麼,或者文章是缺少的東西,是如何使用「項目」類。它似乎是從哪裏來的。

編輯:

感謝yorkw我現在有:

public static String parseJSONResponse(String jsonResponse) { 

     Type listType = new TypeToken<List<SingleEvent>>(){}.getType(); 
     List<SingleEvent> events = (List<SingleEvent>) Gson.fromJson(jsonResponse, listType); 


} 

但是即時通訊在類型越來越紅旗「類型不能被解析爲一個類型」

+0

您還在使用JDK 1.4嗎?[類型](http://download.oracle.com/javase/1,5.0/docs/api/java/lang/reflect/ Type.html)是自JDK 1.5 – yorkw

+0

我什至不記得我安裝了什麼,但肯定是在上個月。編譯器說1.6 – Adam

+0

嗯,我使用了import java.lang.reflect.Type;它解決了這個問題。第二行給出了一個錯誤,說我需要添加SuppressWarnings,它不會做任何事情 – Adam

回答

11

項目是域模型。你需要執行反序列化json字符串:

Type listType = new TypeToken<List<Project>>(){}.getType(); 
List<Project> projects = (List<Project>) gson.fromJson(response, listType); 

你可以使用generi c類型列表,如該文章中所述,在Eclipse中,您會看到一個黃色警告標記「列表是原始類型。參考通用類型列表應參數化「。

+0

如果項目包含私人領域,並且我有getter和setter方法,它會繼續工作嗎? gson會自動查找方法嗎? – Adam

+0

您所描述的正是您應該如何構建您的域類,GSON負責處理所有內容t點(getter和setter)。 – yorkw

+0

我得到了一堆與此代碼錯誤..我不能導入正確的庫。想讓我「創建方法getType()」。現在它已經消失了,它與Type – Adam