首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >属性的fasterxml序列化

属性的fasterxml序列化
EN

Stack Overflow用户
提问于 2019-09-18 03:41:38
回答 1查看 45关注 0票数 0

我按照下面的说明使用fasterxml 2.9.4,并尝试将父类中的CurrencyAndAmount类序列化为:

代码语言:javascript
复制
<ParentClass Currency="USD">100000</ParentClass>

但相反,我的情况正在变得更糟。文档表明,isAttribute是我所需要的,但它对我不起作用。我遗漏了什么?提前感谢您在正确方向上的任何指点。

代码语言:javascript
复制
<ParentClass>100000</ParentClass>

依赖关系:

代码语言:javascript
复制
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.9.4</version>
 </dependency>
 <dependency>
    <groupId>com.fasterxml.jackson.dataformat</groupId>
    <artifactId>jackson-dataformat-xml</artifactId>
    <version>2.9.9</version>
 </dependency>

XmlMapper配置:

代码语言:javascript
复制
mapper.configure(MapperFeature.ACCEPT_CASE_INSENSITIVE_PROPERTIES, true);
mapper.enable(DeserializationFeature.ACCEPT_SINGLE_VALUE_AS_ARRAY);
mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
AnnotationIntrospector primary = new JacksonAnnotationIntrospector();
AnnotationIntrospector secondary = new JaxbAnnotationIntrospector(TypeFactory.defaultInstance());
mapper.setAnnotationIntrospector(AnnotationIntrospector.pair(primary, secondary));

POJO

代码语言:javascript
复制
public class CurrencyAndAmount {
    @JacksonXmlText
    protected BigDecimal value;
    @JacksonXmlProperty(localName = "Currency", isAttribute = true)
    protected String currency;

    @JsonValue
    public BigDecimal getValue() {
        return value;
    }

    public void setValue(BigDecimal value) {
        this.value = value;
    }

    public String getCurrency() {
        return currency;
    }

    public void setCurrency(String value) {
        this.currency = value;
    }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-10-27 05:04:02

您应该删除JsonValue注释并将您的POJO简化为:

代码语言:javascript
复制
class CurrencyAndAmount {

    @JacksonXmlText
    protected BigDecimal value;

    @JacksonXmlProperty(localName = "Currency", isAttribute = true)
    protected String currency;

    ...
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57981047

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档