【发布时间】:2016-05-26 11:19:23
【问题描述】:
这是我的 JSON 字符串:"{'userName' : 'Bachooo'}"
将 JSON 字符串转换为 LoginVO 逻辑是:
Gson gson = new GsonBuilder().excludeFieldsWithoutExposeAnnotation().create();
LoginVO loginFrom = gson.fromJson(jsonInString, LoginVO.class);
System.out.println("userName " + loginFrom.getUserName()); // output null
我的 LoginVO.class 是:
public class LoginVO {
private String userName;
private String password;
public String getUserName()
{
return userName;
}
public void setUserName(String userName)
{
this.userName = userName;
}
public String getPassword()
{
return password;
}
public void setPassword(String password)
{
this.password = password;
}
}
注意我使用的是jdk 1.8.0_92
loginForm.getUserName() 的输出是 NULL 而不是 "Bachooo" 关于这个问题有什么想法吗?
【问题讨论】:
-
如果你只使用
Gson gson = new Gson()会发生什么? -
如果我只在递归调用 com.google.gson.internal.$Gson$Types.resolve($Gson$Types.java:375) 时使用 Gson gson = new Gson() 无限循环跨度>
-
excludeFieldsWithoutExposeAnnotation说什么? "只公开带注释的字段,忽略其余字段" -
^ 即单引号不是有效的 JSON。