jackson jdk版本对应关系_使用Jackson

前面我们介绍了DOM和SAX两种解析XML的标准接口。但是,无论是DOM还是SAX,使用起来都不直观。

观察XML文档的结构:

Java核心技术

Cay S. Horstmann

1234567

Java

Network

我们发现,它完全可以对应到一个定义好的JavaBean中:

public class Book {

public long id;

public String name;

public String author;

public String isbn;

public List tags;

public String pubDate;

}

如果能直接从XML文档解析成一个JavaBean,那比DOM或者SAX不知道容易到哪里去了。

幸运的是,一个名叫Jackson的开源的第三方库可以轻松做到XML到JavaBean的转换。我们要使用Jackson,先添加两个Maven的依赖:

com.fasterxml.jackson.dataformat:jackson-dataformat-xml:2.10.1

org.codehaus.woodstox:woodstox-core-asl:4.4.1

然后,定义好JavaBean,就可以用下面几行代码解析:

InputStream input = Main.class.getResourceAsStream("/book.xml");

JacksonXmlModule module = new JacksonXmlModule();

XmlMapper mapper = new XmlMapper(module);

Book book = mapper.readValue(input, Book.class);

System.out.println(book.id);

System.out.println(book.name);

System.out.println(book.author);

System.out.println(book.isbn);

System.out.println(book.tags);

System.out.println(book.pubDate);

注意到XmlMapper就是我们需要创建的核心对象,可以用readValue(InputStream, Class)直接读取XML并返回一个JavaBean。运行上述代码,就可以直接从Book对象中拿到数据:

1

Java核心技术

Cay S. Horstmann

1234567

[Java, Network]

null

如果要解析的数据格式不是Jackson内置的标准格式,那么需要编写一点额外的扩展来告诉Jackson如何自定义解析。这里我们不做深入讨论,可以参考Jackson的官方文档。

练习

小结

使用Jackson解析XML,可以直接把XML解析为JavaBean,十分方便。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值