您的 JSON 是一个对象数组。
围绕(和其他 JSON 序列化/反序列化)库的整个想法Gson
是,您最终会得到自己的 POJO。
下面是如何创建一个 POJO 来表示包含在数组中的对象并List
从该 JSON 中获取它们:
public class App
{
public static void main( String[] args )
{
String json = "[{\"title\":\"facebook\",\"description\":\"social networking website\"," +
"\"url\":\"http://www.facebook.com\"},{\"title\":\"WoW\",\"description\":\"game\"," +
"\"url\":\"http://us.battle.net/wow/\"},{\"title\":\"google\",\"description\":\"search engine\"," +
"\"url\":\"http://www.google.com\"}]";
// The next 3 lines are all that is required to parse your JSON
// into a List of your POJO
Gson gson = new Gson();
Type type = new TypeToken<List<WebsiteInfo>>(){}.getType();
List<WebsiteInfo> list = gson.fromJson(json, type);
// Show that you have the contents as expected.
for (WebsiteInfo i : list)
{
System.out.println(i.title + " : " + i.description);
}
}
}
// Simple POJO just for demonstration. Normally
// these would be private with getters/setters
class WebsiteInfo
{
String title;
String description;
String url;
}
输出:
facebook : 社交网站
WoW : 游戏
google : 搜索引擎
编辑添加:因为 JSON 是一个数组,所以TypeToken
需要使用 来获取 a List
,因为涉及到泛型。没有它,您实际上可以执行以下操作:
WebsiteInfo[] array = new Gson().fromJson(json, WebsiteInfo[].class);
现在,您WebsiteInfo
从一行代码中获得了一组对象。话虽如此,使用泛型Collection
或List
如演示的那样灵活得多,并且通常被推荐。
您可以在Gson 用户指南中阅读更多相关信息