当前位置: 首页 > 工具软件 > Jackson > 使用案例 >

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

勾学博
2023-12-01

前面我们介绍了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,十分方便。

 类似资料: