2015-05-27 116 views
-1

嵌套的屬性是可能的情況下,我有例如JSON不嵌套

class DefaultFruit { 
    taste: String 
} 

class Fruit { 

    fruit: DefaultFruit 
    color: String 
} 

提供一些註釋@JSON註釋其轉化對象結構

到:

{ 
color: "", 
taste: "", 
} 

回答

2

是的,您可以使用@JsonUnwrapped註釋fruit屬性/字段,並且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

真的我試過了,但它沒有任何效果,儘管我使用了另一個Json註解,如@JsonFormat,它們的工作原理。嗯... –

+0

這很奇怪,我剛剛嘗試過,它確實對我很有用,至少對於序列化。 – araqnid

+0

也許我的配置/ jackson版本有誤。無論如何,這是一個很好的答案。 –