首先,您需要一个FacebookFriend
类(为简单起见,使用公共字段且不使用 getter):
public class FacebookFriend {
public String name;
public String id;
}
如果您创建了一个包装类,例如:
public class JsonResponse {
public List<FacebookFriend> data;
}
生活变得简单得多,你可以简单地做:
JsonResponse resp = new Gson().fromJson(myJsonString, JsonResponse.class);
并完成它。
如果您不想创建带有data
字段的封闭类,则可以使用 Gson 解析 JSON,然后提取数组:
JsonParser p = new JsonParser();
JsonElement e = p.parse(myJsonString);
JsonObject obj = e.getAsJsonObject();
JsonArray ja = obj.get("data").getAsJsonArray();
(您显然可以链接所有这些方法,但我在此演示中明确保留了它们)
现在您可以使用 Gson 直接映射到您的班级。
FacebookFriend[] friendArray = new Gson().fromJson(ja, FacebookFriend[].class);
也就是说,老实说,最好使用 aCollection
代替:
Type type = new TypeToken<Collection<FacebookFriend>>(){}.getType();
Collection<FacebookFriend> friendCollection = new Gson().fromJson(ja, type);