Я знаю, что об этом много спрашивали. Но я делаю программу, которая извлекает все предметы поблизости, используя модернизацию и 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"
}
]
Может быть, я просто пропускаю какой-то синтаксис илинекоторые ошибки, потому что мои глаза устали от отладки. Ваша помощь была бы хороша.