无法将XML映射到杰克逊

时间:2017-02-23 19:08:03

标签: java xml jackson jackson-dataformat-xml

我需要使用类似于以下内容的XML:

<root:ElementName>
    <equipment:Equipment>
        <eqp:Name>Equipment 1</eqp:Name>
        <eqp:Type>A</eqp:Type>
    </equipment:Equipment>
    <equipment:Equipment>
        <eqp:Name>Equipment 2</eqp:Name>
        <eqp:Type>B</eqp:Type>
    </equipment:Equipment><equipment:Equipment>
        <eqp:Name>Equipment 3</eqp:Name>
        <eqp:Type>C</eqp:Type>
    </equipment:Equipment>
</root:ElementName>

我想把它映射到&#34;设备&#34;的POJO。我使用的是Jackson XML映射和Lombok,所以基本上我现在已将它拆分为两个类,首先是应该在<root:ElementName>读取的根对象并转换所有{{1} }标签到设备对象列表中:

<equipment:Equipment>

然后是设备对象本身:

@JacksonXmlRootElement(localName = "root:ElementName")
@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonIgnoreProperties(ignoreUnknown = true)
public class EquipmentMidbCompositeResponse
{

    @JsonProperty("equipment")
    @JacksonXmlProperty(localName = "equipment:Equipment")
    @Getter
    @Setter
    List<Equipment> equipmentList;

}

起初我在Equipment对象中没有@JsonCreator的构造函数,并且会得到一个&#34;没有String-argument构造函数/工厂方法来从String值反序列化&#34;错误,经过一些研究后添加了构造函数来解决这个问题。有了这个我就越过了那个错误,但是映射后返回的Equipment对象列表的所有字段都设置为null。在尝试映射这些XML属性时,我在这里错过了什么/做错了什么?

0 个答案:

没有答案