2015-11-28 461 views
0

我有一个包含很多服务器端逻辑所需的属性的类,但其中一些属于UI所需。现在,当我从类中创建一个json时,所有的属性都被写入json。我只想在将它转换为json时忽略一些值。我试过@JsonIgnore。但它不起作用。如何在通过ObjectMapper序列化类时忽略属性

我的班级

import com.fasterxml.jackson.annotation.JsonIgnore; 
import com.fasterxml.jackson.annotation.JsonIgnoreProperties; 
import com.fasterxml.jackson.annotation.JsonProperty; 

@JsonIgnoreProperties(ignoreUnknown = true) 
public class Student { 

    @JsonProperty("id") 
    protected Integer id; 

    @JsonProperty("name") 
    protected String name; 

    /** 
    * This field I want to ignore in json. 
    * Thus used @JsonIgnore in its getter 
    */ 
    @JsonProperty("securityCode") 
    protected String securityCode; 

    public Integer getId() { 
     return id; 
    } 

    public void setId(Integer id) { 
     this.id = id; 
    } 

    public String getName() { 
     return name; 
    } 

    public void setName(String name) { 
     this.name = name; 
    } 

    @JsonIgnore 
    public String getSecurityCode() { 
     return securityCode; 
    } 

    public void setSecurityCode(String securityCode) { 
     this.securityCode = securityCode; 
    } 
} 

,我使用

public static StringBuilder convertToJson(Object value){ 
     StringBuilder stringValue = new StringBuilder(); 
     ObjectMapper mapper = new ObjectMapper(); 
     try { 
      stringValue.append(mapper.writeValueAsString(value)); 
     } catch (JsonProcessingException e) { 
      logger.error("Error while converting to json>>",e); 
     } 
     return stringValue; 
    } 

My Expected json should contain only : 

id:1 
name:abc 

but what I am getting is 
id:1 
name:abc 
securityCode:_gshb_90880..some_value. 

这里有什么问题,请大家帮忙

回答

相关问题