بروز خطا
[message]
اشتراک در سوال
رای ها
[dataList]
دریافت اطلاعات از وب با کمک Retrofit
سلام دوستان
من تازه با رتروفیت آشنا شدم و لازم دارم تا یک جیسون آبجکت مثل شکل زیر رو با رتروفیت از وب سایت دریافت کنم . مشکلم اینه که 'weather' رو که یک json array هستش رو به راحتی می تونم بگیرم ولی 'main' , 'wind ' رو که خودشون هم یک آبجکت هستند رو نمیتونم بگیرم . اینم کد من هستش:
این Interface من هستش :
public interface APIService {
@GET("weather?q=London,uk&appid=6de0fb940ed472cf048d85028e1ad757")
Call<MainModelResponse> getMain();
}
و اینم کلاس response من هستش که اول اطلاعاتی که دریافت میکنم میاد این تو :
public class MainModelResponse {
private ArrayList<MainModel> main;
public MainModelResponse() {
}
public ArrayList<MainModel> getMain() {
return main;
}
public void setMain(ArrayList<MainModel> main) {
this.main = main;
}
}
و بعد از این که اطلاعات اومد توی response میره برای کلاس main model
public class MainModel implements Serializable {
public double temp;
public double pressure;
public double humidity;
public MainModel(double temp, double pressure, double humidity) {
this.temp = temp;
this.pressure = pressure;
this.humidity = humidity;
}
public MainModel() {
}
public double getTemp() {return temp;}
public void setTemp(double temp) {
this.temp = temp;
}
public double getPressure() {
return pressure;
}
public void setPressure(double pressure) {
this.pressure = pressure;
}
public double getHumidity() {
return humidity;
}
public void setHumidity(double humidity) {
this.humidity = humidity;
}
ممنون میشم دوستان کمک کنید دو روزه دنبال حل اینم کل استک گشتم ولی چیزی گیرم نیومد که کارم رو حل کنه :(
0
0
...
(9 سال پیش)
+1
0
سورس قسمتی که متد call رو صدا زدید بفرستید (9 سال پیش)
+1
0
باید جیسون رو درست دیسریالایز کنی و مدلی از هر داده ای که میخوای همونطور که دوستمون گفتن ساخته باشی (9 سال پیش)
برای این سوال 1 پاسخ وجود دارد.
پاسخ به سوال
JSONObject
9 سال پیش
+1
0
باید به ازای هر آبجکتی که ممکنه تو خروجی داشته باشی یک مدل دیگه هم تعریف کنی؛ میتونه این مدل داخل همون مدل اصلی باشه یا نباشه اما باید فیلدی بسازی ازش داخل مدل اصلی
public class MainModel {
public double temp;
public double pressure; public double humidity;
public Main main;
public Wind wind; public MainModel(double temp, double pressure, double humidity, Main main, Wind wind) { this.temp = temp; this.pressure = pressure; this.humidity = humidity;
this.main = main;
this.wind = wind; } public MainModel() {}
public class Main{
// fields ...
}
public class Wind{
// fields ...
}
// setter and getter ...
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .