Java反序列化

Java Deserialization

我有 xml 那样的回应

        <service>Service name</service>
        ...
        some fields
        ...
        <service>
            <min_amount>6</min_amount>
            <max_amount>1522</max_amount>
            <max_limit>3000</max_limit>
            <currency>USD</currency>
        </service>

我需要将它反序列化为 POJO

@JacksonXmlProperty(localName = "service")
private String service;

... some more fields ...

@JacksonXmlProperty(localName = "service")
private Service serviceObject;

但我得到 com.fasterxml.jackson.databind.JsonMappingException:代表 属性“服务”的多个字段,我该如何解决?

您的 XML 响应的结构无效,因此可能无法正确映射它以进行(反)序列化。

您有两个名称相同的标签 service,但结构不同。

我假设您不是服务的所有者,产生了这个 XML,但是应该重命名这个标签之一,或者应该为它们使用两个单独的命名空间。

您的 XML 响应不正确,因为您对两个不同的事物使用了相同的标签名称。例如一个应该是 serviceName

        <serviceName>Service name</serviceName>
        ...
        some fields
        ...
        <service>
            <min_amount>6</min_amount>
            <max_amount>1522</max_amount>
            <max_limit>3000</max_limit>
            <currency>USD</currency>
        </service>