我是使用改装的新手,在这里我遇到了一个问题,即改装总是为布尔类型对象返回false,实际上是1(真)我正在重新找回。
下面是我的用于重新搜索数据的pojo类
public class JobsModel implements Serializable {
@SerializedName("posted_on")
private String postedOn;
@SerializedName("is_active")
private boolean isActive=false;
public JobsModel(String postedOn, boolean isActive) {
this.postedOn=postedOn;
this.isActive=isActive;
}
public Boolean getPostedOn() {
return postedOn
}
public void setPostedOn(String postedOn) {
postedOn= postedOn
}
public Boolean getActive() {
return isActive;
}
public void setActive(Boolean active) {
isActive = active;
}
}
任何帮助将不胜感激
答案 0 :(得分:0)
首先,您必须确保@SerializedName("is_active")
正确且与您的json名称相匹配。
此外,您不需要初始值,如:
private boolean isActive=false;
我修改了你的getter和setter。你可以试试这个:
public boolean getActive() {
return isActive;
}
public void setActive(boolean active) {
isActive = active;
}
如果您正在使用Retrofit 2.0,那么解析boolean
会有一种奇怪的行为(我认为这是一个错误)。
当我们尝试解析名称以boolean
开头的"I"
json对象时,它总是返回false。这与你无关,但也许有这样的问题。如果可以,您可以尝试为对象使用不同的json名称。
答案 1 :(得分:0)
布尔值是Java中的原始类型,它的默认值为false 如果你的json is_active值没有任何值,那么is_active默认为false! 为避免此问题,请使用Boolean not boolean type!
答案 2 :(得分:0)
首先将私人boolean isActive=false;
更改为private boolean Active;
其次改变
public void setActive(Boolean active) {
isActive = active; }
到
public void setActive(boolean active) {
Active = active;
}
并且如果您的JSON包含以I开头的任何对象,则更改它,因为它将始终返回false。 希望这对你有所帮助。
答案 3 :(得分:-1)
您已将此初始化为false。这样做
private boolean isActive;