我有以下JSON表示盐请求的服务器响应:
{ "USER": { "E_MAIL":"email", "SALT":"salt" }, "CODE":"010" }
我尝试使用以下POJO映射它:
public class SaltPOJO { private String code = null; private User user = null; @Override public String toString() { return this.user.toString(); } public String getCode() { return code; } public void setCode(String code) { this.code = code; } public User getUser() { return user; } public void setUser(User user) { this.user = user; } public class User { private String e_mail = null; private String salt = null; @Override public String toString() { return this.e_mail + ": " + this.salt; } public String getE_mail() { return e_mail; } public void setE_mail(String e_mail) { this.e_mail = e_mail; } public String getSalt() { return salt; } public void setSalt(String salt) { this.salt = salt; } } }
现在每次我这样做:
Gson gson = new Gson(); SaltPOJO saltPojo = gson.fromJson(json.toString(), SaltPOJO.class); Log.v("Bla", saltPojo.toString());
该saltPojo.toString()为空。如何使用Gson将JSON映射到POJO?我的变量顺序对Gson映射重要吗?
saltPojo.toString()
我的变量顺序对Gson映射重要吗?
不,不是这样。
如何使用Gson将JSON映射到POJO?
它是 区分大小写 和JSON字符串键应该是相同的POJO类使用的变量名。
您可以使用@SerializedName批注来随意使用任何变量名。
样例代码:
class SaltPOJO { @SerializedName("CODE") private String code = null; @SerializedName("USER") private User user = null; ... class User { @SerializedName("E_MAIL") private String e_mail = null; @SerializedName("SALT") private String salt = null;