2014-09-17 2 views
0

Когда я использую весну mvc.I хочу получить json string.But.Как Джексон сериализует по умолчанию?

Я хава класса Пользователь:

public class User { 
     private String username; 
     private String password; 
     private boolean accountNonExpired = true; 
     private boolean accountNonLocked = true; 
     private boolean credentialsNonExpired = true; 
     private boolean enabled = true; 
     private DateTime registeTime; 
     private String ip; 
     private DateTime loginTime; 
     private DateTime logoutTime; 
     private String loginIp; 
     private DateTime lastLogoutTime; 
     private int passwordExpiredDays = -1; 
     private DateTime passwordChangeTime; 
     private boolean loginAtSameTime = false; 
     private int loginAttempt = 0; 
     private int status = 0; 
     private String problem; 
     private String solution; 
} 

Я хочу получить JSON как:

{"username":"a","ip":"127.0.0.1"} 

сейчас, я использую:

@JsonIgnoreProperties(value = {"password","accountNonExpired", 
"accountNonLocked","credentialsNonExpired", "enabled", "registeTime", 
"loginTime", "logoutTime", "passwordExpiredDays", "passwordChangeTime", 
"loginAtSameTime", "loginAttempt", "status", "problem", "solution"}) 
public class User { 
     ... 
} 

Но !!! Это очень сложный. Могу ли я найти способ решить эту проблему? Например:

@JsonInclude("Annotation") 
public class User { 
    @JsonInclude 
    private String username; 
    ... 
    @JsonInclude 
    private String ip; 
    ... 
} 

или

@JsonIncludeProperties(value={"username", "ip"}) 
public class User { 
     ... 
} 

ответ

0

Я думаю, что вы можете использовать @JsonIgnore аннотацию на уровне поля, чтобы избежать во время сериализации.

0

Я считаю, что все, что вам нужно сделать, это отметить поля, которые вы хотите, с помощью @JsonProperty. Например:

public class User { 
    @JsonProperty 
    private String username; 
    ... 
    @JsonProperty 
    private String ip; 
    ... 
} 
Смежные вопросы