Я получаю данные из API и получаю доступ к данным с помощью GSON.У меня есть массив данных, поступающих из API, и он также содержит объект.
Пример данных:
{
"data": [
{
"id": 3,
"company_id": "1",
"name_nl": "Showtrap trapreno laminaat Kahlua 2 treden Karwei 42x23x25cm",
"description": "",
"name_fr": "=ESCALIER DEMO MELAMINE 2MARCHES===",
"ean_code": "8711283406329",
"mbh": "1",
"msrp": "75",
"article_code": "00076",
"article_status": "nazorg",
"source": "Products",
"created_at": "2018-09-14 11:43:57",
"updated_at": "2018-09-14 11:43:57",
"company": {
"id": 1,
"name": "JEWE",
"franco_amount_product": "1500",
"mail_product": "jewehq@expertmedia.be",
"status": "A",
"created_at": "2018-07-06 04:06:08",
"updated_at": "2018-10-23 14:07:59"
}
}
]
}
Я сгенерировал простые старые объекты Java изJSON и получил 2 файла datum.java , которые содержат все поля массива данных, кроме полей из company объекта.И один Company.java , который содержит все поля из Company объекта.
У меня есть один метод в datum.java для доступа к объекту Company, т.е.
public Company getCompany() {
return company;
}
public void setCompany(Company company) {
this.company = company;
}
И Company.java
@SerializedName("name")
@Expose
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
вот так я создал свою модель.Я могу получить все поля массива данных, но не могу понять, как я могу получить доступ к объекту компании из массива данных с помощью GSON.
GsonBuilder gsonBuilder = new GsonBuilder();
gsonBuilder.setDateFormat("M/d/yy hh:mm a");
gson = gsonBuilder.create();
JSONArray jsonArray = response.getJSONArray("data");
if (jsonArray.length() > 0) {
List<Datum> datumArrayList = new ArrayList<>();
datumArrayList = Arrays.asList(gson.fromJson(jsonArray.toString(), Datum[].class));
Log.e("TAG", "onResponse:datumArrayList "+datumArrayList.size() );
for(Datum datum : datumArrayList){
Log.e("TAG", "onResponse: "+datum.getCompany() );
}
Я хочу получить franco_amount_product изобъект компании.Как я могу получить Пожалуйста, помогите.
// Редактировать .
JSONArray jsonArray = response.getJSONArray("data");
if (jsonArray.length() > 0) {
List<Datum> datumArrayList = new ArrayList<>();
datumArrayList = Arrays.asList(gson.fromJson(jsonArray.toString(), Datum[].class));
Log.e("TAG", "onResponse:datumArrayList "+datumArrayList.size() );
ProductDetailsModel model = ProductDetailsModel.fromJson("data");
model.setData(datumArrayList);
for(Datum datum : model.getData()){
Log.e("TAG", "onResponse: " + datum.getCompany().getFrancoAmountProduct() + ""+datum.getEanCode());
}
Я отредактировал свой код, но сейчас не могу получить никаких значений.Как получить доступ к значениям как из данных, так и из компании, поскольку мне необходимо сохранить объединенные данные в базе данных