Я создал класс, в котором есть конструкторы для различных действий. Однако, когда я пытаюсь подписаться на объект, чтобы отобразить некоторые изображения, цену и названия продуктов, я получаю «ноль» в качестве вывода. но когда я пытаюсь передать ту же функцию в операторе else, она сработала, но все равно вернула null. Пожалуйста, помогите мне понять, почему я получаю эту ошибку. и скажите мне, как ее решить. Заранее спасибо.
mCompositeDisposable.add(mIMyRestaurantAPI.getFoodOfMenu(Common.API_KEY,
event.getCategory().getId())
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(foodModel -> {
if (foodModel.isSuccess()) {
adapter = new MyFoodAdapter(this, foodModel.getResult());
recycler_food_list.setAdapter(adapter);
recycler_food_list.setLayoutAnimation(mLayoutAnimationController);
} else {
Toast.makeText(this, "[GET FOOD RESULT]" + foodModel.getMessage(), Toast.LENGTH_LONG).show();
}
mDialog.dismiss();
}, throwable -> {
mDialog.dismiss();
Toast.makeText(this, "[GET FOOD]" + throwable.getMessage(), Toast.LENGTH_SHORT).show();
}));
я продолжаю получать GET FOOD RESULT = null .. вот как выглядит мой конструктор FOODMODEL
public class FoodModel {
private boolean success;
private String message;
private List<Food> result;
public boolean isSuccess() {
return success;
}
public void setSuccess(boolean success) {
this.success = success;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
public List<Food> getResult() {
return result;
}
public void setResult(List<Food> result) {
this.result = result;
}
и воткак выглядит конструктор FOOD
public class Food {
private int id;
private String name;
private String description;
private String image;
private Double price;
private boolean isSize;
private boolean isAddon;
private int discount;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public String getImage() {
return image;
}
public void setImage(String image) {
this.image = image;
}
public Double getPrice() {
return price;
}
public void setPrice(Double price) {
this.price = price;
}
public boolean isSize() {
return isSize;
}
public void setSize(boolean size) {
isSize = size;
}
public boolean isAddon() {
return isAddon;
}
public void setAddon(boolean addon) {
isAddon = addon;
}
public int getDiscount() {
return discount;
}
public void setDiscount(int discount) {
this.discount = discount;
}
, и именно здесь я передаю соединение из бэкэнда, используя модификацию.
@GET("food")
Observable<FoodModel> getFoodOfMenu(@Query("key") String apiKey,
@Query("menuId") int menuId);
вот API-интерфейс, который я использовал nodejs ..
router.get('/food', function (req, res, next) {
if (req.query.key == API_KEY) {
req.getConnection(function (error, conn) {
var menu_id = req.query.menuId
if (menu_id != null) {
conn.query('SELECT id,name,description,image,price, CASE WHEN isSize=1 THEN \'TRUE\' ELSE \'FALSE\' END as isSize,'
+'CASE WHEN isAddon=1 THEN \'TRUE\' ELSE \'FALSE\' END as isAddon,'
+ 'discount FROM Food WHERE Id in (SELECT foodId FROM Menu_Food WHERE MenuId=?)', [menu_id], function (err, rows, fields) {
if (err) {
res.status(500)
res.send(JSON.stringify({ sucess: false, message: err.message }))
}
else {
if (rows.length > 0) {
res.send(JSON.stringify({ sucess: true, result: rows }))
}
else {
res.send(JSON.stringify({ sucess: false, message: "Empty" }))
}
}
})
} else {
res.send(JSON.stringify({ sucess: false, message: "Missing menu_id" }))
}
})
}
else {
res.send(JSON.stringify({ success: false, message: "Wrong api key marfe" }))
}
})
вот ответ json
{"sucess":true,"result":[{"id":1,"name":"ROASTED QUARTER CHICKEN","description":"Served with mushroom gravy, cranberry & mint sauces","image":"http://10.0.2.2:3000/4_roasted_quarter_chicken_with_special_sauces.jpg","price":25,"isSize":"FALSE","isAddon":"FALSE","discount":0},{"id":2,"name":"CURRY CHICKEN","description":"Chicken served in curry that is made from more than 10 spices to bring out the authentic traditional taste. Served with rice and 3 side dishes\r\n","image":"http://10.0.2.2:3000/2_curry_chic.jpg","price":25,"isSize":"FALSE","isAddon":"FALSE","discount":0},{"id":3,"name":"\r\nRENDANG CHICKEN","description":"Simmered chicken in spices. Served with rice and 3 side dishes","image":"http://10.0.2.2:3000/1_classic_rendang.jpg","price":25,"isSize":"FALSE","isAddon":"FALSE","discount":0},{"id":4,"name":"HERBAL STEAMED CHICKEN","description":"Steamed chicken with red dates and mushroom. Served with rice and 3 side dishes","image":"http://10.0.2.2:3000/3_herbal_steamed_chic.jpg","price":25,"isSize":"FALSE","isAddon":"FALSE","discount":0}]}