2017-10-22 216 views
2

創建嵌套的XML我要像下面創建XML:fasterxml傑克遜使用POJO的

<color>black</color> 
<size> 
<height>1</height> 
</size> 

我的POJO類是:

public class features { 
    private String color; 
    @JacksonXmlProperty(localName = "size") 
    @JsonProperty("value") 
    private Height height; 
    //getter, setter, toString 

    class Height{ 
     @JacksonXmlProperty(localName="height") 
     public String value; 
     //getter, setter, toString 
    } 
} 

的Json我傳遞的是: { 顏色:「黑「, 」value「:1 }

輸出我得到的是:

<color>black</color> 
<size> 
<height/> 
</size> 

爲什麼不設定以高度?

回答

1

您的問題是,傑克遜只能用靜態內部類的工作。 More info

像這樣的東西應該工作

static class Height{ 
    @JacksonXmlProperty(localName="height") 
    public String value; 

    public Height() {} 

    public Height(String value) { 
     this.value = value; 
    } 

} 

另一種選擇是使用正確的先導作用,特色類象

@JsonProperty("value") 
public void setHeightFromString(String height){ 
    this.height = new Height(); 
    this.height.value = height; 
} 

PS:我認爲你的JSON是有效的,並期待像{ "color":"black", "value":"1" }

+0

這個工程。非常感謝。 –