تابستون داره تموم میشه ها، فرصت‌ها محدودن کلی آفر جذاب در کمپین تابستون🔥👇
۰ ثانیه
۰ دقیقه
۰ ساعت
۱ ابوالفضل رضایی
تبدیل api
پوریا شفیعی حل شده توسط پوریا شفیعی

سلام.. 

من قبلا برای ارسال درخواست Get یا Post از لایبراری FastAndroidNetWorking استفاده میکردم که باعث میشد خودش توی متد AsObject بگیره و تبدیل کنه و من فقط ست میکردم..

ولی توی این آموزش متفاوت بود، لطفا میتونین این api رو تبدیل کنین تا من بتونم ببینم و متوجه بشم؟

استاد چون api شون روتش JsonArray بود اونطوری استفاده کردن.. ولی این Api که من دارم روتش یه JsonObject هستش، من نتونستم تبدیلش کنم.. مرسی کمکم کنین...

 سلام و احترام 

پیشنهاد من برای HttpRequest استفاده از لایبرری Retroft هست چرا که سازگاری کاملی با لایبرری‌های پرکاربردی نظیر Rxjava و.. را داراست و احتمال خطا را بسیار کمتر میکند.

پس من مدل api مربوطه رو واستون مینویسم .

و شما کافیست برای هر مورد به عنوان model کلاسی بسازید.

package com.example;
import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;
public class Ad {
@SerializedName("company")
@Expose
private String company;
@SerializedName("url")
@Expose
private String url;
@SerializedName("text")
@Expose
private String text;
public String getCompany() {
return company;
}
public void setCompany(String company) {
this.company = company;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public String getText() {
return text;
}
public void setText(String text) {
this.text = text;
}
}
-----------------------------------کلاس دوم-----------------------------------
package com.example;
import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;
public class Data {
@SerializedName("id")
@Expose
private Integer id;
@SerializedName("email")
@Expose
private String email;
@SerializedName("first_name")
@Expose
private String firstName;
@SerializedName("last_name")
@Expose
private String lastName;
@SerializedName("avatar")
@Expose
private String avatar;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public String getAvatar() {
return avatar;
}
public void setAvatar(String avatar) {
this.avatar = avatar;
}
}
-----------------------------------کلاس سوم-----------------------------------
package com.example;
import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;
public class Model {
@SerializedName("data")
@Expose
private Data data;
@SerializedName("ad")
@Expose
private Ad ad;
public Data getData() {
return data;
}
public void setData(Data data) {
this.data = data;
}
public Ad getAd() {
return ad;
}
public void setAd(Ad ad) {
this.ad = ad;
}
}

 

اما اگر در هر حال میخواهید از Volley استفاده کنید این رو در نظر بگیرید که برای تبدیل از داخلی‌ترین ابجکت یا array استفاده کنید. این لینک آموزشی رو خدمتتون قرار میدم تا به این موضوع به تسلط برسید. برو به لینک و عمل parse کردن رو به راحتی انجام بدهید.

 

بهترین پاسخ
پوریا شفیعی ۰۶ مهر ۱۳۹۹، ۲۰:۳۲