Search code examples
javajsonobjectgson

gson.fromJson return null values


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?


Solution

  • 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.