我从我的服务器上找到一个Json-String:
{"erfolgreich":"true","id":"14"}
当我打电话
//result is the string above
msgServer = gson.fromJson(result, MsgSpielerErstellenSA.class);
布尔值始终为false ...
我做错了什么?
这是我的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;
}
}
答案 0 :(得分:3)
因为布尔字段的正确名称是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")
注释
答案 1 :(得分:1)
json字符串中密钥“erfolgreich”的名称应与类数据成员“isErfolgreich”相同,或者在定义成员之前应使用@SerializedName表示法。如果gson在类成员和json键之间不匹配,则使用该成员类型的默认值。所以你可以使用nikis解决方案,或者你可以使用这样的符号:
@SerializedName("erfolgreich")
private boolean isErfolgreich;