Java反序列化

问题描述

我有这样的 xml 响应

while (!my_queue.empty())
{
    // your logic
    my_queue.pop();
}

我需要将其反序列化为 POJO

        <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>

但我收到 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>