Java 备忘: 使用 Jackson 包的 XML 注解的例子

官方文档 https://github.com/FasterXML/jackson-dataformat-xml/wiki/Jackson-XML-annotations 还是有点晦涩的,本文提供注解与其对应的 XML 的预览,便于理解。

作为例子的 XML 如下

<root k6="6">
    <k1>str</k1>
    <k-2>2</k-2>
    <k3>
        <ki>1</ki>
        <ki>2</ki>
    </k3>
    <k4>
        <ka>3</ka>
        <ka>4</ka>
    </k4>
    <k5>5-1</k5>
    <k5>5-2</k5>
    <k7>a7b</k7>
    <k8><a>8</a></k8>
    <k9><![CDATA[中<a>文]]></k9>
</root>

对应于使用 Jackson 注解的 JavaBean 如下

import java.util.*;

import com.fasterxml.jackson.dataformat.xml.annotation.*;

import lombok.Data;

@Data
@JacksonXmlRootElement(localName = "root")
public class RootXml {

    private String k1;

    @JacksonXmlProperty(localName = "k-2")
    private Integer k2;

    @JacksonXmlElementWrapper(localName = "k3")
    private Collection<String> ki;

    @JacksonXmlElementWrapper(localName = "k4")
    @JacksonXmlProperty(localName = "ka")
    private Collection<String> k4;

    @JacksonXmlElementWrapper(localName = "k5", useWrapping = false)
    private Collection<String> k5;
    
    @JacksonXmlProperty(isAttribute = true)
    private Integer k6;
    
    @Data
    public static class Value1 {

        @JacksonXmlText
        private String a;
    }

    private Value1 k7;

    @Data
    public static class Value2 {

        @JacksonXmlText(value = false)
        private String a;
    }

    private Value2 k8;

    @JacksonXmlCData(value = true) // 序列化时是否总是使用 CDATA 块
    private String k9;
}

转载于:https://my.oschina.net/tridays/blog/1523128

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值