我正在使用MVVVM
模式进行API调用。一切正常,希望在使用数据类对数据进行序列化时,从服务器获得一些空白值。
我有服务器响应
"items": [
{
"id": "1","inspiration_id": "11","name": "xxx","categoryoptions": [
"x","y","z"
]
},{
"id": "2","inspiration_id": "22","name": "test","categoryoptions": [
]
},
为此,我使用翻新的序列化方法。
public class InspirationItemsData implements Serializable {
@Expose
@SerializedName("id")
private String id;
@Expose
@SerializedName("inspiration_id")
private String inspiration_id;
@Expose
@SerializedName("name")
private String name;
@Expose
@SerializedName("coordinates")
private String coordinates;
@Expose
@SerializedName("is_request")
private String is_request;
@Expose
@SerializedName("categoryoptions")
List<CategoryOptions> categoryOptionsList = new ArrayList<>();
public InspirationItemsData(String id,String inspiration_id,String name,String coordinates,String is_request) {
this.id = id;
this.inspiration_id = inspiration_id;
this.name = name;
this.coordinates = coordinates;
this.is_request = is_request;
}
public List<CategoryOptions> getcategoryOptionsList() {
return categoryOptionsList;
}
public void setCategoryOptionsList(List<CategoryOptions> categoryOptionsList) {
this.categoryOptionsList = categoryOptionsList;
}
public String getIs_request() {
return is_request;
}
public void setIs_request(String is_request) {
this.is_request = is_request;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getInspiration_id() {
return inspiration_id;
}
public void setInspiration_id(String inspiration_id) {
this.inspiration_id = inspiration_id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getcoordinates() {
return coordinates;
}
public void setCoordinates(String coordinates) {
this.coordinates = coordinates;
}
您可以在我的数据类中看到具有 categoryoptions 数组的数组,这些数组具有备用值。在某些项目中,它具有值,而有些则没有。
所以当我使用这个
@暴露 @SerializedName(“ categoryoptions”) 列表categoryOptionsList = new ArrayList ();
然后我无法得到答复。 onChanged()方法既不要求观察者使用,也不响应。
但是,如果我在行上方注释,则我能够获得响应并能够显示到UI。因此,为了检查null
和空白值,我使用 @Expose ,但它不起作用。
这是API调用
void getInspirationDetails() {
inspirationDetailsModel.getInspirationDetails().observe(InspirationUploadDetailsactivity.this,new Observer<MainInspirationDetailsResponse>() {
@Override
public void onChanged(MainInspirationDetailsResponse mainInspirationDetailsResponse) {
if (mainInspirationDetailsResponse != null) {
if (mainInspirationDetailsResponse.getStatus().equalsIgnoreCase("0")) {
InspirationDetailData inspirationDetailData = mainInspirationDetailsResponse.getInspirationDetailData();
if (inspirationDetailData != null) {
Util.displayImage(InspirationUploadDetailsactivity.this,inspirationDetailData.getImage_file(),imgUploadedInsipration);
List<InspirationItemsData> inspirationItemsData = inspirationDetailData.getInspirationItemsData();
if (inspirationItemsData != null && inspirationItemsData.size() > 0) {
categoriesAdapter = new CategoriesAdapter(InspirationUploadDetailsactivity.this,inspirationItemsData);
rvCategories.setadapter(categoriesAdapter);
}
}
}
}
}
});
}
我们将不胜感激!