2016-02-08 4 views
3

Есть ли аннотация для уровня класса для 's @JsonProperty? Не зная, какие имена полей относятся к классу, я могу аннотировать класс аннотацией, и он автоматически отобразит его для меня?Существует ли аннотация для уровня класса @JsonProperty

В настоящее время я должен аннотировать каждое поле с помощью JsonProperty, есть ли что-то, что я могу сделать на уровне класса, который поддерживает одну и ту же цель?

public class myEntity() { 

@JsonProperty("banner") 
private String banner; 

@JsonProperty("menu") 
private String menu; 

} 

ответ

4

@JsonProperty не уровень аннотации класса, и вам не нужен, чтобы отметить свой класс с любой аннотацией. Если вы укажете свое имя класса в качестве аргумента для синтаксического анализатора, он будет знать, как его сопоставить в соответствии с вашими методами получения. Это похоже на то, что каждый метод getter был отмечен с помощью @JsonProperty без каких-либо аргументов.

+0

Анализатор, использующий парсер, является JacksonEncoder и JacksonDecoder. .encoder (новый JacksonEncoder()). Декодер (новый JacksonDecoder()) .target (myEntity.class); Вы говорите, что я просто должен добавить геттер и сеттеры, тогда он должен сделать это сам? Потому что у меня уже есть публичные геттеры и сеттеры для полей, но это не сработало. – PhoonOne

+1

Посмотрите на класс ObjectMapper и его методы: readValue(), writeValueAsString(), convertValue(). что должно работать –

+0

@PhoonOne вам нужно будет определить, что означает «не работает». Но что касается '@ JsonProperty', нет, классы POJO НЕ нуждаются в том, чтобы пометить их как сериализуемые; а также свойства, если у вас есть публичный геттер или сеттер. – StaxMan

Смежные вопросы