Java反序列化



我有这样的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. databindd . jsonmappingexception:多个字段代表属性"服务",我怎么能解决这个问题?

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

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

我假设您不是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>

最新更新