2011-10-28 52 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