You need to use a supertype token for the unmarshalling, so that Gson knows what the generic type in your list is. Try this:
TypeToken<List<Person>> token = new TypeToken<List<Person>>(){};
List<Person> personList = gson.fromJson(response, token.getType());
And iterate through the results as such:
for(Person person : personList) {
// some code here
}