This is My JSON String : "{'userName' : 'Bachooo'}"
Converting JSON String to LoginVO logic is:
Gson gson = new GsonBuilder().excludeFieldsWithoutExposeAnnotation().create();
LoginVO loginFrom = gson.fromJson(jsonInString, LoginVO.class);
System.out.println("userName " + loginFrom.getUserName()); // output null
My LoginVO.class is:
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;
}
}
Note I am using jdk 1.8.0_92
Output of loginForm.getUserName() is NULL
instead of "Bachooo"
any idea about this issue?
Since you are setting excludeFieldsWithoutExposeAnnotation()
configuration on the GsonBuilder
you must put @Expose
annotation on those fields you want to serialize/deserialize.
So in order for excludeFieldsWithoutExposeAnnotation()
to serialize/deserialize your fields you must add that annotation:
@Expose
private String userName;
@Expose
private String password;
Or, you could remove excludeFieldsWithoutExposeAnnotation()
from the GsonBuilder
.