您现在的位置是:首页 > 技术交流技术交流
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)
相关文章
随机图文
-
springboot mybatis thymeleaf layui 个人博客源码分享
使用springbootmybatisthymeleaflayui将博客网站进行了重写,精简了些许内容,利用业余时间终于完成了博客的第一版,基本功能已经实现.或许还有很多需要完善的知识点.以后 -
PHP8.1新特只读属性 只读属性的简单用法
PHP8.1新特性只读属性自PHP8.1.0起,可以使用readonly修饰符声明属性,防止初始化后修改属性。PHP8.1新特性枚举枚举的简单用法官方教程https://www.ph -
mysql tinyint(1)tinyint(2)tinyint(3)tinyint(4)区别 详解tinyint()取值范围变化
一直对mysql中的整形存在误区,想当然的认为tinyint(1)的取值范围就是0-1之间,int()后面数字越大取值范围就越大,相当然每次还想想后面数字放多少合适,其实这都存在误区. 首先tinyi -
2022年面试前基本准备1
面试题准备1.Mysql中MyISAM和InnoDB的区别有哪些?区别: InnoDB支持事务,MyISAM不支持事务。这是MySQL将默认存储引擎从MyISAM变成Inno