您现在的位置是:首页 > 技术交流技术交流

java转xml maven扩展包推荐 比XStream与JAXB更好的xml方式

上善若水2020-08-14 14:55:36【技术交流】 5363人已围观

简介最近在做java转xml时遇到了一些问题,在百度上搜索可用的jar时,首先搜索到的是JAXB放时,这种方式我遇到的两个问题,后来换成XStream,还行,直到我在maven仓库中找到了jackson-

最近在做java转xml时遇到了一些问题,在百度上搜索可用的jar时,首先搜索到的是JAXB放时,这种方式我遇到的两个问题,后来换成XStream,还行,直到我在maven仓库中找到了jackson-dataformat-xml,这才是最完美的方式.
首先说说jackson-dataformat-xm

jackson-dataformat-xm

1.首先引入jar包

<dependency>
<groupId>com.fasterxml.jackson.dataformat</groupId>
<artifactId>jackson-dataformat-xml</artifactId>
<version>2.11.1</version>
</dependency>

2.部分核心注解

@JacksonXmlRootElement(localName = "Request")
public class LazadaCreateProductRequest {
    @JacksonXmlProperty(localName = "Product")
    private LazadaCreateProduct Product;

    public LazadaCreateProduct getProduct() {
        return Product;
    }

    public void setProduct(LazadaCreateProduct Product) {
        this.Product = Product;
    }
}

使用方式

 //2.将javaBean装换xml字符串
        XmlMapper xml = new XmlMapper();
        xml.configure(ToXmlGenerator.Feature.WRITE_XML_DECLARATION, true);//添加xml头部
        String createProductPayload=null;
        xml.enable(SerializationFeature.INDENT_OUTPUT);//美化xml方便查看
        try {
            createProductPayload = xml.writeValueAsString(lazadaCreateProductRequest);
        } catch (JsonProcessingException e) {
            e.printStackTrace();
        }

说说我在JAXB遇到的坑

1.自己建立测试项目使用jdk13没有问题,吧代码移植过来后就报java.lang.ClassNotFoundException: javax.xml.bind.JAXBException,需要手动在maven中引入jar包十分麻烦.
2.JAXB在解析对象为map的成员变量时,不能正确的解析,效果会是下图这样.

再说说我在XStream

XStream其实还不错,就是使用起来会给你一个警告,高版本jdk貌似体验不是蛮好,然后我就放弃使用

很赞哦! (13)

相关文章

文章评论

站点信息

  • 建站时间:2019-10-24
  • 网站程序:Thinkphp6 Layui
  • 文章统计247篇文章
  • 标签管理标签云
  • 统计数据cnzz统计
  • 微信公众号:扫描二维码,关注我们