问题标签 [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.
json - Xml序列化JAXB与Jackson-dataformat-xml?
我有一个 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,只允许代码配置)??
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。
怎么了?
scala - Apache Flink Kakfa XML 流
尝试运行我的 Flink Streaming 应用程序时出现以下错误。
我认为在 Scala 中,当您创建案例类时,会创建默认构造函数?我不明白这个错误。请帮忙!
我有以下 scala 对象:
运行 Flink Streaming 的主要 scala 对象
描述输入的案例类
最后将 Kafka 事件提取到我的案例类对象中的反序列化类
java - Jackson @JsonIgnore 不与来自不同项目的实体合作
我有一个球衣(1.19)和杰克逊(2.4.1)的项目。我正在尝试序列化/反序列化带有注释为@JsonIgnore 的字段的实体。该实体在其他项目中,它不起作用(它仍然显示带有@JsonIgnore 注释的字段)。
但是,如果我在我的 jersey-jackson 项目中移动实体,它确实工作得很好。
关于可能发生的事情有什么想法吗?
非常感谢!!!
这是我的实体
xml - Jackson/Woodstox XML 编码字符解释
我收到了一个 XML 文件,其中包含使用 Jackson 和 Woodstox 读取、编辑和编写它的指令(根据文档中的建议)。在大多数情况下,这并不太难。他们都非常擅长它的作用。但是,在这一点上,我遇到了一个问题:
我的 XML 对象本身确实包含 XML 对象。例如:
当我将 XML 文件读入我的带有 Jackson 注释的 Java 对象时,Woodstox 将和的所有这些实例分别转换为<
和。当我将对象作为 XML 文件写回时,变为但保持不变>
<
>
<
<
>
>
我试图读取文件的方法的最简单版本如下:
对于我上面给出的示例,我的带有 Jackson 注释的 Java 对象看起来像这样:
最后,我的依赖项如下所示:
这似乎是由于 Jackson 使用了 Woodstox 的 BufferingXmlWriter。这位特定的作者将截取这些字符并对其进行编码,并且似乎没有任何方法可以规避该决定:
所以最后总结一下问题,给了我一个XML文件。该 XML 文件包含属性和元素,这些属性和元素本身包含已编码 (和) 的符号 (<
和),以免破坏 XML。当 Woodstox 读取文件时,它不是将 XML 中包含的实际字符串交给我的 Java 对象,而是对字符进行解码。写入后,only被重新编码为. 这似乎正在发生,因为 Jackson 正在使用 Woodstox 的 BufferingXmlWriter,它似乎无法配置以避免对这些字符进行编码。>
<
>
<
<
结果,我的问题如下:
我可以将 Jackson 对象配置为使用 Woodstox XML 阅读器,该阅读器允许我在我的 XML 文件中读取和写入字符而无需进一步编码,还是我需要完全满足我的需要寻找不同的解决方案?
spring - Spring MVC - 杰克逊 XML 格式
我希望我的控制器返回以下 XML:
基本上我的 DTO 看起来像这样:
我的控制器看起来像这样:
我正在使用以下依赖项,下面给出的 gradle 片段:
如何使用 jackson xml 解析器实现 'result=OK' 和 'timestamp=20110322T152403Z' 属性?
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)
该项目的 github 页面上也报告了此问题,但没有找到真正的解决方案。-- github.com/FasterXML/jackson-dataformat-xml/issues/116
更新:我使用jarjar
了以下依赖项:
还将每个依赖项以及我的appcompat
和support
api 升级到最新版本。
错误继续 -
希望有人能对此有所了解,不知道是什么原因造成的......
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 请求,如下所示,它仍然可以接受。
但它应该给出错误的请求作为响应
xml - 使用 Jackson 从 XML 到 POJO 的反序列化问题:没有从字符串值反序列化的字符串参数构造函数/工厂方法
我有一个 XML 文档,我需要将其转换(反序列化)为 Java POJO。我无法更改XML 文档的结构。我使用 Java 8 和 Jackson 框架进行映射。 摇篮依赖:
包装器 XML 文档:
要解析的 XML 文档:
解析文档的方法:
例外:
顶行说:
它所指的值来自这个标签:
如果我移动(移动)标签,<apr>16.05</apr>
解析器工作并且不会引起异常。如果我用不同的标签替换标签,仍然会出现同样的异常;由于某些原因,它只影响<rate_details>
包装标签中的最后一个标签。
可能是什么问题?
xml - 使用 Jackson 将 DOCTYPE 添加到 XML 的简单方法
我的 XML 文档需要有DOCTYPE
定义。我使用以下 API/框架:
- 爪哇 8
- 杰克逊的 XML
Gradle 的依赖:
序列化器:
有没有办法像这样轻松添加 DOCTYPE,例如:
这是 XML 文档声明。
有任何想法吗?