我从我的服务器中获取了一个 Json-String:
{"erfolgreich":"true","id":"14"}
当我打电话时
//result is the string above
msgServer = gson.fromJson(result, MsgSpielerErstellenSA.class);
布尔值总是假的...
我做错了什么?
这是我的MsgSpielerErstellenSA
public class MsgSpielerErstellenSA {
private long id;
private boolean isErfolgreich;
public MsgSpielerErstellenSA(long id, boolean isErfolgreich) {
super();
this.id = id;
this.isErfolgreich = isErfolgreich;
}
public boolean isErfolgreich() {
return isErfolgreich;
}
public void setErfolgreich(boolean isErfolgreich) {
this.isErfolgreich = isErfolgreich;
}
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
}
因为布尔字段的正确名称是 erfolgreich
,而不是 isErfolgreich
。请使用以下类:
public class MsgSpielerErstellenSA {
private long id;
private boolean erfolgreich;
public MsgSpielerErstellenSA(long id, boolean isErfolgreich) {
this.id = id;
this.erfolgreich = isErfolgreich;
}
public boolean isErfolgreich() {
return erfolgreich;
}
public void setErfolgreich(boolean isErfolgreich) {
this.erfolgreich = isErfolgreich;
}
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
}
但是,如果您不想重命名此字段,则可以在其上使用@SerializedName("erfolgreich")
注释
json 字符串中键 "erfolgreich" 的名称应与类数据成员 "isErfolgreich" 相同,或者应在定义成员之前使用@SerializedName表示法。 如果 gson 无法在类成员和 JSON 键之间匹配,则使用该成员类型的默认值。 因此,您可以使用 Nikis 解决方案,也可以使用如下表示法:
@SerializedName("erfolgreich")
private boolean isErfolgreich;