问题标签 [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.
java - Java+Jackson+XML:将一个java对象的属性序列化为同名的XML元素
我有一个 Java 对象,我想使用Jackson库将其序列化为XML :
我想将其序列化为以下格式:
而不是我使用 Jacskon 得到的:
我不想更改Point
对象属性或结构。有没有办法Point
使用杰克逊注释或自定义序列化程序将对象序列化为所需的格式?如果是,那么我该怎么做?
我正在使用杰克逊库:
java - Jackson 2.8.9 @JsonPropertyOrder 在序列化 XML 时不排列由 @JsonTypeInfo 生成的字段
我正在尝试以以下格式序列化和反序列化 XML:
并尝试将其映射到以下类:
和
当我序列化时出现问题
xmlString 返回为具有正确字段但顺序不正确的 xml,为 @JsonPropertyOrder
的实现类类型content
基于 的值<command>
,它与 处于同一级别<content>
,因此使用JsonTypeInfo.As.EXTERNAL_PROPERTY
。由于反序列化按预期工作,我排除了 BaseContent 的其他实现类。现在我正在寻找一种方法,可以@JsonPropertyOrder
有效地处理由@JsonTypeInfo
. 我试图在 中添加command
字段Home.class
,但它会导致 xml 中出现重复的标签。
实现这一目标的正确方法是什么?还是有其他更好的方法(序列化和反序列化提到的 xml 并content
根据command
特定顺序的值而变化)?
提前致谢。
java - @JacksonXmlProperty(isAttribute = true) 使用 Jackson XmlMapper 附加唯一 ID
您好我正在尝试使用 jackson-dataformat-xml 2.7.3 XmlMapper 将我的 POJO 转换为 xml。我在 POJO 类中使用 jackson 注释,如下面的代码所示,但是我在列表的每个标签中都附加了一些唯一的 ID。如何删除这些唯一 ID。
// 下面是ElementTag 类
// 下面是ProfessionalLeadDetails 类
//在 main 方法中使用 XmlMapper 转换为 xml
但是我在 val 之前添加了一些独特的 ID,例如 zdef1999262822:如下所示: OUTPUT
期望的输出:
提前致谢!
java - Jackson XML:如何将空/空集合序列化为空节点
我正在使用 Jackson XML 2.8.9,不幸的是我找不到任何方法将空/空集合序列化为空节点。
负责序列化为 XML 的方法:
我尝试使用:
序列化包含:
/li>序列化提供者:
/li>杰克逊 2.9.0 EMPTY_ELEMENT_AS_NULL 功能:
/li>
不幸的是,没有任何效果。有人知道如何实现吗?
测试方法:
ReportView
班级:
我准备了一个带有示例代码的存储库:https ://github.com/agabrys/bugs-reports/tree/master/jackson-xml/empty-elements-serialization
编辑:
我扩展了测试toXml
方法并做了一些代码清理。
我还尝试创建一个基于Module
and的解决方案SerializerModifier
。不幸的是,两者都以失败告终。我在jackson-dataformat-xml
积压中创建了一个问题:
编辑:
我有一个提示如何解决异常问题(请参阅NPE after overrideing map serializer with custom implementation (XmlBeanSerializerModifier.modifyMapSerializer)),但它仍然不能解决缺失empty/null
值的问题。
java - Jackson XML模块:当两个集合字段的项目具有相同名称时,表示属性错误的多个字段
所需的xml:
请注意,两个集合中的项目标签是相同的:“路径”它们是否被不同的标签包装:“路径”和“更多路径”
带注释的 bean 就像(使用 lombok):
问题: 映射时抛出异常,说有两个属性映射到同一个标签(path)
例外:
如果使用不同的属性名称,一切正常:
但是,xml 输出不是必需的:
如何设法在两个集合中获取具有相同标签的项目?
注意:实际上这是一个已知问题(请参阅:https ://github.com/FasterXML/jackson-dataformat-xml/issues/192 )......但我不知道是否有解决方法
java - 杰克逊没有正确解析时间戳
我在java.sql.Timestamp
使用 Jackson 2.8.5 解析 XML 文件时遇到问题。不知何故,毫秒在左侧用零填充。
这是一个最小的示例,表明:
foo.ts = 2017-09-21 11:25:32.001
而如果我手动解析字符串,我会得到预期值
2017-09-21 11:25:32.1
java - 序列化 Jackson xml 的通用类型
我正在尝试将其序列化为 XML:
使用下一个特定的类类型:
但我得到了下一个xml:
代替:
有任何想法吗?
java - 通过注释 Swagger XML 设置属性
我想创建一个具有属性的 Swagger 模型,该属性在格式化为 XML 时应表示为属性。
这是我的 Swagger 模型课
在 Swagger UI 中,这显示为
但我希望“RequestType”改为 XML 属性:
根据我的阅读,我需要在 Swagger 规范中添加以下内容
有没有办法用 Swagger 注释做到这一点?欢迎任何建议或替代方案,并提前致谢!
java - 如何使用@JacksonXmlProperty 反序列化同一对象的不同名称的集合?
我们正在尝试将反序列化 XML 转换为 JSON。在大多数情况下,它工作正常。我们用@JacksonXmlProperty 注释了我们的POJO。但是我们有一个导致问题的新场景。问题是使用相同对象的 2 个不同集合,但名称不同。
这是一个简化的 XML 输入:
对应的 POJO 如下所示:
它无一例外地反序列化,但 Refunds 集合中的退款属性全部为空。
有没有办法在不创建退款 POJO 的情况下做到这一点?
jackson-dataformat-xml - 杰克逊为每个子根元素生成 xml 中的新行
我想生成我的 xml 文件,如下所示。
/li>我需要为每个通信元素开始一个新行。
目前它正在一行中生成整个xml。可能吗?我正在使用杰克逊 2.6.7 API。