2015-05-27 3 views

ответ

2

Да, вы можете аннотировать объект/поле fruit с помощью @JsonUnwrapped, а свойства DefaultFruit будут сериализованы/обесценены вместе с свойствами Fruit.

public static class DefaultFruit { 
    public String taste; 
} 

public static class Fruit { 
    @JsonUnwrapped 
    public DefaultFruit fruit; 
    public String color; 
} 

@Test 
public void serialize_unwrapped() throws Exception { 
    Fruit fruit = new Fruit(); 
    fruit.color = "red"; 
    fruit.fruit = new DefaultFruit(); 
    fruit.fruit.taste = "sweet"; 
    assertThat(mapper.writeValueAsString(fruit), 
       equalTo("{\"taste\":\"sweet\",\"color\":\"red\"}")); 
} 
+0

True Я пробовал, но это не имело никакого эффекта, хотя я использую другие аннотации Json, такие как @JsonFormat, и они работают. hmm ... –

+0

это странно, я только что попробовал, и он работает для меня, по крайней мере, для сериализации. – araqnid

+0

Возможно, у меня неправильная конфигурация/версия Jackson. Во всяком случае, это хороший ответ. –

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