Анализ данных с сервера с использованием Gson с JSONObject в данных - PullRequest
0 голосов
/ 02 мая 2018

У меня есть данные, которые я получаю с сервера.

{
  "_id": "5a78263eab294307bebc2e6b",
  "userID": "PvIMsjink1UcrwXZ4gb899W5Kxo2",
  "name": "battery",
  "price": 22,
  "description": "t",
  "__v": 0,
  "boardVisibility": "MainBoard",
  "date": "2018-02-05T09:39:10.597Z",
  "picture": {
    "url": "https:\/\/firebasestorage.googleapis.com\/v0\/b\/bitbuy-bitbuy.appspot.com\/o\/user%2FPvIMsjink1UcrwXZ4gb899W5Kxo2%2FDepositphotos_59984669_s-2015.jpg?alt=media&token=a562fd6d-98ff-4fb8-ad93-c251a5016b0d",
    "name": "Depositphotos_32026397_m-2015.jpg"
  }
}

Вот класс модели:

   @SerializedName("_id")
    private String _id;
    @SerializedName("userID")
    private String userID;
    @SerializedName("name")
    private String name;
    @SerializedName("price")
    private double price;
    @SerializedName("description")
    private String description;
    @SerializedName("date")
    private String date;
    @SerializedName("picture")
    private JSONObject picture;

Вот как я устанавливаю данные на ArrayList:

userItemsArr = Gson().fromJson<List<UserItem>>(gsonObj.getJSONArray("docs").toString(), turnsType) as ArrayList<UserItem>

Проблема в том, что значение picture в ответе содержит другой JSONObject, поэтому в моем классе модели я получаю пустой JSONObject.

1 Ответ

0 голосов
/ 02 мая 2018
"picture": {
    "url": "https:\/\/firebasestorage.googleapis.com\/v0\/b\/bitbuy-bitbuy.appspot.com\/o\/user%2FPvIMsjink1UcrwXZ4gb899W5Kxo2%2FDepositphotos_59984669_s-2015.jpg?alt=media&token=a562fd6d-98ff-4fb8-ad93-c251a5016b0d",
    "name": "Depositphotos_32026397_m-2015.jpg"
  }

Вы должны Исправить ваш MODEL класс.

@SerializedName("picture")
@Expose
private Picture picture;

// Set-Get Method

public Picture getPicture() {
return picture;
}

public void setPicture(Picture picture) {
this.picture = picture;
}

И

public class Picture {

@SerializedName("url")
@Expose
private String url;
@SerializedName("name")
@Expose
private String name;

public String getUrl() {
return url;
}

public void setUrl(String url) {
this.url = url;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

}

Вы можете использовать jsonschema2pojo.

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