Retrofit2 Ошибка Expected BEGIN_ARRAY but was BEGIN_OBJECT at line 1 column 2 path $

318
06 апреля 2017, 18:19

Retrofit2 Ошибка Expected BEGIN_ARRAY but was BEGIN_OBJECT at line 1 column 2 path $ Подскажите пожалуйста как исправить?

Запрос https://api.jeench.com/v1/search?query=%D1%81%D1%83%D0%BC%D0%BA%D0%B0&country_id=643&lat=55.76&lng=37.61

Ответ JSON

{
  "13927": {
    "score": 1.7248458,
    "item_name": "Маникюр матовый",
    "item_data": "Маникюр ",
    "item_id": "13927",
    "group_data": "4669|Маникюр|2013|Ногтевой сервис",
    "group_id": "4669",
    "shop_id": "2635",
    "shop_name": "Маникюр \"Beautybar moscow\"",
    "item_price": 1300,
    "item_location": [
      {
        "lat": "55.72962190",
        "lon": "37.63292440"
      }
    ]
  },
  "15695": {
    "score": 1.7248458,
    "item_name": "Маникюр матовый",
    "item_data": "Маникюр ",
    "item_id": "15695",
    "group_data": "4669|Маникюр|2013|Ногтевой сервис",
    "group_id": "4669",
    "shop_id": "2823",
    "shop_name": "Маникюр \"Funky nails dinamo\"",
    "item_price": 1100,
    "item_location": [
      {
        "lat": "55.78537400",
        "lon": "37.55860800"
      }
    ]
  },...

public interface ApiSearch {
    @GET("/v1/search")
    Call<List<SearchGroup>> getData(@QueryMap Map<String, String> parameters);
}
public class SearchGroup {
    @SerializedName("item")
    @Expose
    private Search searches;
    public Search getSearches() {
        return searches;
    }
    public void setSearches(Search searches) {
        this.searches = searches;
    }
}
public class Search {
    @SerializedName("score")
    @Expose
    private double score;
    @SerializedName("item_name")
    @Expose
    private String item_name;
    @SerializedName("item_data")
    @Expose
    private String item_data;
    @SerializedName("item_id")
    @Expose
    private String item_id;
    @SerializedName("group_data")
    @Expose
    private String group_data;
    @SerializedName("group_id")
    @Expose
    private String group_id;
    @SerializedName("shop_id")
    @Expose
    private String shop_id;
    @SerializedName("shop_name")
    @Expose
    private String shop_name;
    @SerializedName("item_price")
    @Expose
    private double item_price;
    @SerializedName("item_location")
    @Expose
    private ItemLocation item_location;
    public double getScore() {
        return score;
    }
    public void setScore(double score) {
        this.score = score;
    }
    public String getItem_name() {
        return item_name;
    }
    public void setItem_name(String item_name) {
        this.item_name = item_name;
    }
    public String getItem_data() {
        return item_data;
    }
    public void setItem_data(String item_data) {
        this.item_data = item_data;
    }
    public String getItem_id() {
        return item_id;
    }
    public void setItem_id(String item_id) {
        this.item_id = item_id;
    }
    public String getGroup_data() {
        return group_data;
    }
    public void setGroup_data(String group_data) {
        this.group_data = group_data;
    }
    public String getGroup_id() {
        return group_id;
    }
    public void setGroup_id(String group_id) {
        this.group_id = group_id;
    }
    public String getShop_id() {
        return shop_id;
    }
    public void setShop_id(String shop_id) {
        this.shop_id = shop_id;
    }
    public String getShop_name() {
        return shop_name;
    }
    public void setShop_name(String shop_name) {
        this.shop_name = shop_name;
    }
    public double getItem_price() {
        return item_price;
    }
    public void setItem_price(double item_price) {
        this.item_price = item_price;
    }
    public ItemLocation getItem_location() {
        return item_location;
    }
    public void setItem_location(ItemLocation item_location) {
        this.item_location = item_location;
    }
    }
public class ItemLocation {
    @SerializedName("lat")
    @Expose
    private String lat;
    @SerializedName("lon")
    @Expose
    private String lon;
    public String getLat() {
        return lat;
    }
    public void setLat(String lat) {
        this.lat = lat;
    }
    public String getLon() {
        return lon;
    }
    public void setLon(String lon) {
        this.lon = lon;
    }
}
searchList = new ArrayList<>();
        Map<String, String> parameters = new HashMap<String, String>();
        parameters.put("query", "сумка");
        parameters.put("country_id", "643");
        parameters.put("lat", "55.76");
        parameters.put("lng", "37.61");
        JeenchUser.getApiSearch().getData(parameters).enqueue(new Callback<List<SearchGroup>>() {
            @Override
            public void onResponse(Call<List<SearchGroup>> call, Response<List<SearchGroup>> response) {
                searchList.addAll(response.body());
                for(int i=0;i<searchList.size();i++) {
                    Log.i("tester", "onResponse: "+searchList.get(i).getSearches().toString());
                }
            }
            @Override
            public void onFailure(Call<List<SearchGroup>> call, Throwable t) {
                Toast.makeText(MainActivity.this, "An error occurred during n
etworking", Toast.LENGTH_SHORT).show();
                    Log.i("tester", "error:   "+t.toString());
                   **/*ПОПАДАЮ В ЭТО ИСКЛЮЧЕНИЕ*/** 
                }
            });

Помогите пожалуйста правильно создать классы SearchGroup, Search Заранее спасибо!

READ ALSO
ошибка при работе с картой

ошибка при работе с картой

В портретной ориентации все работает отлично но когда поворачиваю экран программа вылетает

243
Canvas размеры полотна

Canvas размеры полотна

Создал свой виджет, но не могу понять как образуется размер для холстаРазмер экрана эмулятора 1280х768

225
Загрузка png без потери качества из drawble

Загрузка png без потери качества из drawble

Имеется png в drawble, фон для приложения и весит 70 кбайтГрадиент на нем плавный, png-24 с еще 8 битами на канал для прозрачности

206
Хранение настроек Swing приложения

Хранение настроек Swing приложения

Делаю приложуху на SwingНужно сохранять настройки приложения, но так что бы юзер не мог добраться до него, по крайней мере что б это был не файл...

312