【发布时间】:2017-01-11 06:27:42
【问题描述】:
我有一个 XSD,我希望从中支持 JSON 和 XML 数据格式的序列化/反序列化。
我使用xjc 实用程序生成了我的模型类。
到目前为止,我已经使用 Jackson JSON 库处理 JSON 数据。
我无法修改我的 Java 类,因此我配置了 ObjectMapper 与 Mix-In annotations 和其他功能,如 PropertyNamingStrategy(更改字段名称)、SerializationFeature.WRAP_ROOT_VALUE 以通过代码为我的序列化提供配置。
现在我想对 XML 序列化过程做同样的事情。
我已经在线阅读了各种选项:
- JAXB
- Jackson 库 + Jackson-dataformat-xml.jar
- XStream
哪个最适合我的情况(不能用注释编辑我的 POJO,只允许代码配置)??
【问题讨论】:
-
好奇你最后选择了什么?尽管 jackson 提供了一个更简洁的编程模型 - 它对于 xml 序列化有一个特别讨厌的问题,因为它无法在来自 jaxb 注释模型的序列化 xml 中预先添加默认名称空间名称。这迫使我在一个项目中放弃了这个
-
@redzedi 由于 jackson xml 序列化中的命名空间问题(如您所述),我坚持使用 JAXB。
-
@redzedi:我添加了一个答案,其中包含我的 JAXB 选择的详细信息。虽然 jackson xml 库如果适合您的目的也非常好。
标签: json xml jaxb jackson jackson-dataformat-xml