Ожидаемый BEGIN_ARRAY, но был BEGIN_OBJECT в строке 1 столбца 2 путь $ При получении данных в Android от дооснащения - PullRequest
0 голосов
/ 17 октября 2019

Я знаю, что об этом много спрашивали. Но я делаю программу, которая извлекает все предметы поблизости, используя модернизацию и Android.

Это мой интерфейс:

@GET("Items/getItemsNearby.php")
Call<List<Item>> getAllItemsNearby(
        @Query("auth_user_id") long auth_user_id,
        @Query("loc_lat") double loc_lat,
        @Query("loc_long") double loc_long,
        @Query("userMaxDistance") int userMaxDistance
);

Мой класс POJO:

public class Item {

@SerializedName("auth_user_id") private long auth_user_id;
@SerializedName("item_id") private long item_id;
@SerializedName("item_title") private String item_title;
@SerializedName("item_description") private String item_description;
@SerializedName("item_image_url") private String item_image_url;
@SerializedName("item_price") private double item_price;
@SerializedName("item_dis_in_km") private float item_dis_in_km;
@SerializedName("item_dis_in_m") private float item_dis_in_m;
@SerializedName("likeCount") private int likeCount;
@SerializedName("loc_long") private double loc_long;
@SerializedName("loc_lat") private double loc_lat;

public Item(){

}
public Item(
        long item_id,
        String item_title,
        String item_description,
        double item_price,
        String item_image_url,
        float item_dis_in_km,
        float item_dis_in_m,
        int likeCount) {

    this.item_id =item_id;
    this.item_title = item_title;
    this.item_description = item_description;
    this.item_price = item_price;
    this.item_image_url = item_image_url;
    this.item_dis_in_km = item_dis_in_km;
    this.item_dis_in_m = item_dis_in_m;
    this.likeCount = likeCount;
}

public int getLikeCount() {
    return likeCount;
}

public void setLikeCount(int likeCount) {
    this.likeCount = likeCount;
}

public float getItem_dis_in_m() {
    return item_dis_in_m;
}

public void setItem_dis_in_m(float item_dis_in_m) {
    this.item_dis_in_m = item_dis_in_m;
}

public float getItem_dis_in_km() {
    return item_dis_in_km;
}

public void setItem_dis_in_km(float item_dis_in_km) {
    this.item_dis_in_km = item_dis_in_km;
}

public double getItem_price() {
    return item_price;
}

public void setItem_price(double item_price) {
    this.item_price = item_price;
}

public String getItem_image_url() {
    return item_image_url;
}

public void setItem_image_url(String item_image_url) {
    this.item_image_url = item_image_url;
}

public String getItem_desc() {
    return item_description;
}

public void setItem_desc(String item_desc) {
    this.item_description = item_desc;
}

public String getItem_title() {
    return item_title;
}

public void setItem_title(String item_title) {
    this.item_title = item_title;
}

public long getItem_id() {
    return item_id;
}

public void setItem_id(long item_id) {
    this.item_id = item_id;
}

public long getAuth_user_id() {
    return auth_user_id;
}

public void setAuth_user_id(long auth_user_id) {
    this.auth_user_id = auth_user_id;
}

public double getLoc_long() {
    return loc_long;
}

public void setLoc_long(double loc_long) {
    this.loc_long = loc_long;
}

public double getLoc_lat() {
    return loc_lat;
}

public void setLoc_lat(double loc_lat) {
    this.loc_lat = loc_lat;
}

}

Мой метод обратного вызова:

Call<List<Item>> call = ApiClient
            .getInstance()
            .getApi()
            .getAllItemsNearby(userID, latitude, longitude, maxDistance);

    call.enqueue(new Callback<List<Item>>() {
        @Override
        public void onResponse(Call<List<Item>> call, Response<List<Item>> response) {
            if(response.isSuccessful()){
                if(response.body()!=null){
                    itemList = response.body();
                    itemAdapter = new ItemAdapter(context, itemList);
                    cardStackView.setAdapter(itemAdapter);
                }else{
                    Log.i("NullResponse", "Response is empty");
                }
            }else{
                Log.i("ResponseUnsuccessfull", "Response not successfull");
            }
        }

        @Override
        public void onFailure(Call<List<Item>> call, Throwable t) {
            Log.i("ResponseFailure", t.getLocalizedMessage());
        }
    });

Я сделал запрос почтальона, и он получил данные json, которые я хотел вызвать. Вот результат в почтальоне:

ЗАПРОС ПОСТМАНА

Но я всегда получаю эту ошибку в Android:

Ожидается BEGIN_ARRAY, но был BEGIN_OBJECTв строке 1 столбец 2 путь $

Это данные json, которые я получаю в почтальоне:

[
{
    "item_title": "GENUINE SMOK RPM40 Kit",
    "item_desc": "Brand new SMOK RPM40, naay discount pag sa Banko Sentral vape shop ka mupalit",
    "item_price": "1499",
    "item_image_url": "http://www.vaperclub.net/wp-content/uploads/2019/09/SMOK-RPM40-Kit-1024x1024.jpg",
    "item_dis_in_km": "0",
    "item_dis_in_m": 0,
    "likeCount": null
},
{
    "item_title": "GENUINE SMOK RPM40 Kit",
    "item_desc": "Brand new SMOK RPM40, naay discount pag sa Banko Sentral vape shop ka mupalit",
    "item_price": "1499",
    "item_image_url": "http://www.vaperclub.net/wp-content/uploads/2019/09/SMOK-RPM40-Kit-1024x1024.jpg",
    "item_dis_in_km": "0",
    "item_dis_in_m": 0,
    "likeCount": "0"
},
{
    "item_title": "GENUINE SMOK RPM40 Kit",
    "item_desc": "Brand new SMOK RPM40, naay discount pag sa Banko Sentral vape shop ka mupalit",
    "item_price": "1499",
    "item_image_url": "http://www.vaperclub.net/wp-content/uploads/2019/09/SMOK-RPM40-Kit-1024x1024.jpg",
    "item_dis_in_km": "0",
    "item_dis_in_m": 0,
    "likeCount": "0"
},
{
    "item_title": "GENUINE SMOK RPM40 Kit",
    "item_desc": "Brand new SMOK RPM40, naay discount pag sa Banko Sentral vape shop ka mupalit",
    "item_price": "1499",
    "item_image_url": "http://www.vaperclub.net/wp-content/uploads/2019/09/SMOK-RPM40-Kit-1024x1024.jpg",
    "item_dis_in_km": "0",
    "item_dis_in_m": 0,
    "likeCount": "0"
},
{
    "item_title": "GENUINE SMOK RPM40 Kit",
    "item_desc": "Brand new SMOK RPM40, naay discount pag sa Banko Sentral vape shop ka mupalit",
    "item_price": "1499",
    "item_image_url": "http://www.vaperclub.net/wp-content/uploads/2019/09/SMOK-RPM40-Kit-1024x1024.jpg",
    "item_dis_in_km": "0",
    "item_dis_in_m": 0,
    "likeCount": "0"
},
{
    "item_title": "GENUINE SMOK RPM40 Kit",
    "item_desc": "Brand new SMOK RPM40, naay discount pag sa Banko Sentral vape shop ka mupalit",
    "item_price": "1499",
    "item_image_url": "http://www.vaperclub.net/wp-content/uploads/2019/09/SMOK-RPM40-Kit-1024x1024.jpg",
    "item_dis_in_km": "0",
    "item_dis_in_m": 0,
    "likeCount": "0"
},
{
    "item_title": "Test Item 1",
    "item_desc": "test",
    "item_price": "200",
    "item_image_url": "",
    "item_dis_in_km": "14.855180531624004",
    "item_dis_in_m": 14855.180531624004,
    "likeCount": null
},
{
    "item_title": "dambohalang kagaguhan",
    "item_desc": "yawa nani",
    "item_price": "900",
    "item_image_url": "",
    "item_dis_in_km": "47.308851470592494",
    "item_dis_in_m": 47308.8514705925,
    "likeCount": "2"
}

]

Может быть, я просто пропускаю какой-то синтаксис илинекоторые ошибки, потому что мои глаза устали от отладки. Ваша помощь была бы хороша.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...