Проблема заключается просто в том, что структура данных Java не соответствует JSON, несколькими различными способами, включая отсутствие поля для курсора и наличие имен полей, которые не соответствуют именам элементов JSON.
Вот минимально модифицированная версия структуры данных Java, которая соответствует JSON.
public class ParseOffers
{
private cursor cursor;
private List<results> results;
public static class cursor
{
private int currentPageIndex;
private int estimatedResultCount;
private pages pages;
private String responseDetails;
private int responseStatus;
public class pages
{
private int label;
private int start;
}
}
public static class results
{
private int accuracy;
private addressLines addressLines;
private String city;
private String country;
private String ddUrl;
private String ddUrlFromHere;
private String ddUrlToHere;
private double lat;
private double lng;
private phoneNumbers phoneNumbers;
private String region;
private String staticMapUrl;
private String streetAddress;
private String title;
private String titleNoFormatting;
private String url;
public class addressLines
{
private String Address1;
private String Address2;
private String Address3;
private String Address4;
private String Address5;
private String Postcode;
}
public class phoneNumbers
{
private String number;
private String type;
}
}
}
Хотя эта структура данных Java работает, у нее все еще есть странности, которые я бы изменил.
Странно, что некоторые из вложенных классов являются статическими, а некоторые нет. Я бы изменил его, чтобы не было вложенных классов.
Странно, что некоторые имена классов точно совпадают с именами полей (и элементов JSON). Я бы использовал более распространенные соглашения об именах. Например, я бы изменил имя класса курсора на «Курсор».