使用Serilizable注释检查响应项目的空白值

我正在使用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);

                        }

                    }
                }
            }

        }
    });
}

我们将不胜感激!

limo2737 回答:使用Serilizable注释检查响应项目的空白值

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3015721.html

大家都在问