问题标签 [jackson-dataformat-xml]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
9602 浏览

json - Xml序列化JAXB与Jackson-dataformat-xml?

我有一个 XSD,我想从中支持 JSON 和 XML 数据格式的序列化/反序列化。

xjc我使用实用程序生成了我的模型类。

所以到目前为止,我已经使用 Jackson JSON 库处理了 JSON 数据。

我无法修改我的 Java 类,因此我配置ObjectMapperMix-In annotations其他功能,例如PropertyNamingStrategy(更改字段名称),SerializationFeature.WRAP_ROOT_VALUE以通过代码提供对我的序列化的配置。

现在我想对 XML 序列化过程做同样的事情。

我已经在线阅读了各种选项:

  1. JAXB
  2. Jackson 库 + Jackson-dataformat-xml.jar
  3. XStream

哪个最适合我的情况(不能用注释编辑我的 POJO,只允许代码配置)??

0 投票
0 回答
127 浏览

java - jackson xml序列化异常

我正在使用一个使用 jackson 库来处理 xml 的 mavenized java 项目。我有以下情况:

pom.xml我使用

在 xml 中序列化的类是

从java生成xml的映射器类是

最后是junit测试

使用此代码,我预计将生成包含以下内容的 restaurant.xml 文件:

但是行generator.writeObjectFieldStart("restaturant");生成一个IllegalStateException: No element/attribute specified when trying to output element.

当我将此代码与 JsonFactory 一起使用时,它可以工作并生成

我知道有映射器来简化序列化/反序列化操作,但我需要使用低级 api。

怎么了?

0 投票
1 回答
375 浏览

scala - Apache Flink Kakfa XML 流

尝试运行我的 Flink Streaming 应用程序时出现以下错误。

我认为在 Scala 中,当您创建案例类时,会创建默认构造函数?我不明白这个错误。请帮忙!

我有以下 scala 对象:

运行 Flink Streaming 的主要 scala 对象

描述输入的案例类

最后将 Kafka 事件提取到我的案例类对象中的反序列化类

0 投票
0 回答
698 浏览

java - Jackson @JsonIgnore 不与来自不同项目的实体合作

我有一个球衣(1.19)和杰克逊(2.4.1)的项目。我正在尝试序列化/反序列化带有注释为@JsonIgnore 的字段的实体。该实体在其他项目中,它不起作用(它仍然显示带有@JsonIgnore 注释的字段)。

但是,如果我在我的 jersey-jackson 项目中移动实体,它确实工作得很好。

关于可能发生的事情有什么想法吗?

非常感谢!!!

这是我的实体

0 投票
1 回答
1939 浏览

xml - Jackson/Woodstox XML 编码字符解释

我收到了一个 XML 文件,其中包含使用 Jackson 和 Woodstox 读取、编辑和编写它的指令(根据文档中的建议)。在大多数情况下,这并不太难。他们都非常擅长它的作用。但是,在这一点上,我遇到了一个问题:

我的 XML 对象本身确实包含 XML 对象。例如:

当我将 XML 文件读入我的带有 Jackson 注释的 Java 对象时,Woodstox 将和的所有这些实例分别转换为&lt;和。当我将对象作为 XML 文件写回时,变为但保持不变&gt;<><&lt;>>

我试图读取文件的方法的最简单版本如下:

对于我上面给出的示例,我的带有 Jackson 注释的 Java 对象看起来像这样:

最后,我的依赖项如下所示:

这似乎是由于 Jackson 使用了 Woodstox 的 BufferingXmlWriter。这位特定的作者将截取这些字符并对其进行编码,并且似乎没有任何方法可以规避该决定:

所以最后总结一下问题,给了我一个XML文件。该 XML 文件包含属性和元素,这些属性和元素本身包含已编码 (和) 的符号 (<和),以免破坏 XML。当 Woodstox 读取文件时,它不是将 XML 中包含的实际字符串交给我的 Java 对象,而是对字符进行解码。写入后,only被重新编码为. 这似乎正在发生,因为 Jackson 正在使用 Woodstox 的 BufferingXmlWriter,它似乎无法配置以避免对这些字符进行编码。>&lt;&gt;<&lt;

结果,我的问题如下:

我可以将 Jackson 对象配置为使用 Woodstox XML 阅读器,该阅读器允许我在我的 XML 文件中读取和写入字符而无需进一步编码,还是我需要完全满足我的需要寻找不同的解决方案?

0 投票
1 回答
658 浏览

spring - Spring MVC - 杰克逊 XML 格式

我希望我的控制器返回以下 XML:

基本上我的 DTO 看起来像这样:

我的控制器看起来像这样:

我正在使用以下依赖项,下面给出的 gradle 片段:

如何使用 jackson xml 解析器实现 'result=OK' 和 'timestamp=20110322T152403Z' 属性?

0 投票
1 回答
2783 浏览

android - 如何修复 XmlMapper 异常 - java.lang.VerifyError: com.fasterxml.jackson?

jackson-dataformat-xml-2.8.5.jar尝试执行此操作时遇到问题:

引发以下异常

根据我的研究,这与 Jackson 1.3 中引入的二进制不兼容有关。正如 Tatu Saloranta 在他的旧博客中所述,遗憾的是,该博客已不再在线。

我一直非常重视兼容性,至少对于任何“非 beta”版本(1.0 及更高版本)而言。因此,我们的想法是任何 1.x 版本都将比以前的版本简单的即插即用。这确实适用于补丁版本;但事实证明,并非所有次要版本都以这种方式工作。例如,版本 1.2 和 1.3 有一些意想不到的不兼容性。

问题是这样的:虽然大多数情况下二进制兼容性是比源代码兼容性更难的目标——也就是说,如果你破坏源代码兼容性,你几乎肯定会破坏二进制兼容性——但严格来说并非如此。具体来说,很可能进行某些源兼容但不兼容二进制的更改。

具体的例子是将不返回任何内容的方法(“void 方法”)更改为返回不破坏编译的方法。但它确实破坏了二进制兼容性。啊。

这正是当我决定让 ObjectMapper 遵循“流利”模式以允许链接配置方法调用时发生的事情。如果不是这种“隐藏”的 API 更改,那就太好了……

不太确定如何纠正这个问题,因为我对 android 开发还很陌生。

正如您在我的依赖项列表中看到的那样,我已经确保全面使用相同版本的 Jackson app/build.gradle,是否还有其他我可能遗漏的东西?

根据官方FasterXML Jackson github 页面,应该支持我正在使用的扩展...

XML:支持XML;提供流和数据绑定实现。类似于 JAXB 的“代码优先”模式(不支持“XML Schema first”,但可以使用 JAXB bean)

https://github.com/FasterXML/jackson-dataformat-xml

该项目的 github 页面上也报告了此问题,但没有找到真正的解决方案。-- github.com/FasterXML/jackson-dataformat-xml/issues/116

更新:我使用jarjar了以下依赖项:

还将每个依赖项以及我的appcompatsupportapi 升级到最新版本。

错误继续 -

希望有人能对此有所了解,不知道是什么原因造成的......

0 投票
4 回答
5916 浏览

spring - @JsonIgnoreProperties(ignoreUnknown=false) 在 Spring 4.2.0 及更高版本中不起作用

@JsonIgnoreProperties(ignoreUnknown=false) 不适用于 spring 4.2.0 和更高版本的 spring。但它适用于 4.0.4 和 4.0.1 。我正在使用 spring 4.2.8 并且使用了 Jackson 依赖项

如果我发送带有无效字段的 json 请求,那么它将作为有效请求接受。但它应该给出错误的请求作为响应。例如:如果我有课

如果发送有效的相应 json 请求应该是这样的

但即使我发送带有无效字段的 json 请求,如下所示,它仍然可以接受。

但它应该给出错误的请求作为响应

0 投票
3 回答
9751 浏览

xml - 使用 Jackson 从 XML 到 POJO 的反序列化问题:没有从字符串值反序列化的字符串参数构造函数/工厂方法

我有一个 XML 文档,我需要将其转换(反序列化)为 Java POJO。我无法更改XML 文档的结构。我使用 Java 8 和 Jackson 框架进行映射。 摇篮依赖:

包装器 XML 文档:

要解析的 XML 文档:

解析文档的方法:

例外:

顶行说:

它所指的值来自这个标签:

如果我移动(移动)标签,<apr>16.05</apr>解析器工作并且不会引起异常。如果我用不同的标签替换标签,仍然会出现同样的异常;由于某些原因,它只影响<rate_details>包装标签中的最后一个标签。

可能是什么问题?

0 投票
0 回答
2002 浏览

xml - 使用 Jackson 将 DOCTYPE 添加到 XML 的简单方法

我的 XML 文档需要有DOCTYPE定义。我使用以下 API/框架:

  • 爪哇 8
  • 杰克逊的 XML

Gradle 的依赖:

序列化器:

有没有办法像这样轻松添加 DOCTYPE,例如:

这是 XML 文档声明。

有任何想法吗?