2016-10-18 4 views
0

игнорировать поле Java Bean при преобразовании в JSONИгнорировать поле Java Bean при преобразовании в JSON

Я имею Java Bean и отправка JSON в качестве ответа, в том Java Bean Я хочу иметь некоторые переходные поля, что не должно входить в JSON.

@XmlRootElement(name = "sample") 
class Sample{ 

private String field1; 

@XmlTransient 
private String transientField; 

//Getter and setters 

public String toJSON() throws Exception { 
    ObjectMapper mapper = new ObjectMapper(); 
    String json = mapper.writeValueAsString(this); 
    return json; 
} 

} 

Когда я звоню в метод JSON, я все еще получаю «transientField» в JSON.

И у меня есть API для отдыха, который возвращает этот образец JSON в качестве ответа.

@GET 
@Path("/somePath/") 
@Produces({"application/json"}) 
Sample getSample(); 

В этом ответе также я получаю это переходное поле. Я что-то не так? Пожалуйста, помогите мне сделать это.

+0

Дубликат. Проверьте: http://stackoverflow.com/questions/26831876/resteasy-jackson-how-to-exclude-fields-in-the-response –

ответ

1

Метод 1: использование аннотаций @JsonIgnoreProperties ("FieldName") к вашему POJO

пример: @JsonIgnoreProperties (ignoreUnknown = верно, то значение = { "fieldTobeIgnored"})

Способ 2: @JsonIgnore для конкретное поле, которое следует игнорировать десериализацией JSON

2

Попробуйте вместо этого использовать @JsonIgnore.