为什么我的XML列表在与杰克逊分析时没有解析?

发布于 2025-01-27 06:43:08 字数 3137 浏览 1 评论 0原文

有没有人能帮助我为什么我的货币赛主义者是无效的?我想我对列表的简洁主义者有遗漏。 我正在与杰克逊和伦波克一起使用Spring Boot。我还尝试将列表添加到Mainucube,但这也将导致无效。

<gesmes:Envelope xmlns:gesmes="http://www.gesmes.org/xml/2002-08-01" xmlns="http://www.ecb.int/vocabulary/2002-08-01/eurofxref">
<gesmes:subject>Reference rates</gesmes:subject>
<gesmes:Sender>
    <gesmes:name>European Central Bank</gesmes:name>
</gesmes:Sender>
<Cube>
    <Cube time="2022-05-06">
        <Cube currency="USD" rate="1.0570"/>
        <Cube currency="JPY" rate="137.90"/>
        <Cube currency="BGN" rate="1.9558"/>
        <Cube currency="CZK" rate="24.665"/>
        <Cube currency="DKK" rate="7.4400"/>
        <Cube currency="GBP" rate="0.85625"/>
        <Cube currency="HUF" rate="381.47"/>
        <Cube currency="PLN" rate="4.7028"/>
        <Cube currency="RON" rate="4.9490"/>
        <Cube currency="SEK" rate="10.4686"/>
        <Cube currency="CHF" rate="1.0419"/>
        <Cube currency="ISK" rate="138.30"/>
        <Cube currency="NOK" rate="9.9808"/>
        <Cube currency="HRK" rate="7.5336"/>
        <Cube currency="TRY" rate="15.8078"/>
        <Cube currency="AUD" rate="1.4888"/>
        <Cube currency="BRL" rate="5.3183"/>
        <Cube currency="CAD" rate="1.3560"/>
        <Cube currency="CNY" rate="7.0506"/>
        <Cube currency="HKD" rate="8.2969"/>
        <Cube currency="IDR" rate="15312.44"/>
        <Cube currency="ILS" rate="3.5965"/>
        <Cube currency="INR" rate="81.2980"/>
        <Cube currency="KRW" rate="1343.90"/>
        <Cube currency="MXN" rate="21.3555"/>
        <Cube currency="MYR" rate="4.6191"/>
        <Cube currency="NZD" rate="1.6440"/>
        <Cube currency="PHP" rate="55.467"/>
        <Cube currency="SGD" rate="1.4642"/>
        <Cube currency="THB" rate="36.303"/>
        <Cube currency="ZAR" rate="16.9614"/>
    </Cube>
</Cube>
</gesmes:Envelope>

envelope.java

@Data
public class Envelope {
@JacksonXmlProperty(localName = "Cube")
private MainCube mainCube;
}

maincube.java

@Data
public class MainCube {
    @JacksonXmlProperty(localName = "Cube")
    private Cube cube;
}

cube.java(直到这里起作用

@Data
public class Cube {
    @JacksonXmlProperty(localName = "time", isAttribute = true)
    private String time;

    @JacksonXmlElementWrapper
    @JacksonXmlProperty(localName = "Cube")
    List<CurrencyCube> currencyCubeList;
}

@Data
public class CurrencyCube {
    @JacksonXmlProperty(localName = "rate", isAttribute = true)
    private Double rate;

    @JacksonXmlProperty(localName = "currency", isAttribute = true)
    private String currency;
}

is there anyone who can help me why my currencyCubeList is null? I think i have a missunderstanding with the List CubeList.
I am Using Spring Boot with Jackson and Lombok. I also tried to add the List to the MainCube but this also will result in null.
enter image description here

<gesmes:Envelope xmlns:gesmes="http://www.gesmes.org/xml/2002-08-01" xmlns="http://www.ecb.int/vocabulary/2002-08-01/eurofxref">
<gesmes:subject>Reference rates</gesmes:subject>
<gesmes:Sender>
    <gesmes:name>European Central Bank</gesmes:name>
</gesmes:Sender>
<Cube>
    <Cube time="2022-05-06">
        <Cube currency="USD" rate="1.0570"/>
        <Cube currency="JPY" rate="137.90"/>
        <Cube currency="BGN" rate="1.9558"/>
        <Cube currency="CZK" rate="24.665"/>
        <Cube currency="DKK" rate="7.4400"/>
        <Cube currency="GBP" rate="0.85625"/>
        <Cube currency="HUF" rate="381.47"/>
        <Cube currency="PLN" rate="4.7028"/>
        <Cube currency="RON" rate="4.9490"/>
        <Cube currency="SEK" rate="10.4686"/>
        <Cube currency="CHF" rate="1.0419"/>
        <Cube currency="ISK" rate="138.30"/>
        <Cube currency="NOK" rate="9.9808"/>
        <Cube currency="HRK" rate="7.5336"/>
        <Cube currency="TRY" rate="15.8078"/>
        <Cube currency="AUD" rate="1.4888"/>
        <Cube currency="BRL" rate="5.3183"/>
        <Cube currency="CAD" rate="1.3560"/>
        <Cube currency="CNY" rate="7.0506"/>
        <Cube currency="HKD" rate="8.2969"/>
        <Cube currency="IDR" rate="15312.44"/>
        <Cube currency="ILS" rate="3.5965"/>
        <Cube currency="INR" rate="81.2980"/>
        <Cube currency="KRW" rate="1343.90"/>
        <Cube currency="MXN" rate="21.3555"/>
        <Cube currency="MYR" rate="4.6191"/>
        <Cube currency="NZD" rate="1.6440"/>
        <Cube currency="PHP" rate="55.467"/>
        <Cube currency="SGD" rate="1.4642"/>
        <Cube currency="THB" rate="36.303"/>
        <Cube currency="ZAR" rate="16.9614"/>
    </Cube>
</Cube>
</gesmes:Envelope>

Envelope.java

@Data
public class Envelope {
@JacksonXmlProperty(localName = "Cube")
private MainCube mainCube;
}

MainCube.java

@Data
public class MainCube {
    @JacksonXmlProperty(localName = "Cube")
    private Cube cube;
}

Cube.java (until here it works)

@Data
public class Cube {
    @JacksonXmlProperty(localName = "time", isAttribute = true)
    private String time;

    @JacksonXmlElementWrapper
    @JacksonXmlProperty(localName = "Cube")
    List<CurrencyCube> currencyCubeList;
}

CurrencyCube.java

@Data
public class CurrencyCube {
    @JacksonXmlProperty(localName = "rate", isAttribute = true)
    private Double rate;

    @JacksonXmlProperty(localName = "currency", isAttribute = true)
    private String currency;
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

a√萤火虫的光℡ 2025-02-03 06:43:08

可以通过在注释中使用usewrapping = false来解决它

@JacksonXmlProperty(localName = "Cube")
@JacksonXmlElementWrapper(useWrapping = false)
List<CurrencyCube> currencyCubeList;

Could resolve it by using useWrapping=false in the Annotation obove the list

@JacksonXmlProperty(localName = "Cube")
@JacksonXmlElementWrapper(useWrapping = false)
List<CurrencyCube> currencyCubeList;
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文