2017-10-22 214 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

这个工程。非常感谢。 –