问题标签 [unmarshalling]

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 投票
1 回答
937 浏览

java - JAXB 解组到实体错误

我在将 xml 流解组到实体时遇到问题。我的外键永远不会被设置为具有正确主键的对象,它们只是被设置为一个空对象。

具有外键的类称为 ProductBase。它引用了 BrandData(field pkId) 和 Categories(field pkId)。当我解组并坚持时,我可以很好地处理 BrandData 和 Categories。我遇到了 ProductBase 的问题。

这是产品库:

解组以下内容:

我希望得到一个像这样的 ProductBase 对象:

但是我得到

ProductBase p1: p1.pkId=88294 p1.brandData = (brandData object each field null) p1.categories = (Categories object each field null) p1.ts = (Date object with value 1970-01-01T05:22:35.06)

因此,当我坚持 ProductBase 时,它​​会遇到空值问题。

我希望这是由于 BradnData 和 Categories 实体中的引用不当造成的。我尝试使用 @XmlInverseReference 注释,但没有成功。任何人都看到问题可能是什么?

BrandData 实体:

类别实体:

0 投票
1 回答
506 浏览

serialization - Marshal.load 上的 ClassNotFoundException

我正在尝试在 Scala 中进行元帅转储和加载...

...但是对 Marshal.load 的调用引发了 ClassNotFoundException ...

我也尝试过使用完全限定的类名,但没有运气。我错过了什么?

0 投票
1 回答
3648 浏览

java - JAXB 解组到多个 pojo

我试图弄清楚是否可以将 xml 元素解组为多个 pojo。例如:

对于 xml:

物品类别

ItemDimensions 类

我曾尝试使用由 Netbeans 6.9 生成的许多 JAXB 映射和许多测试类来完成类似的事情,但现在都没有了。有谁知道这是否可以在没有任何中间对象的情况下完成?

0 投票
2 回答
24502 浏览

java - JAXB-Unmarshalling 期间的 ObjectFactory 角色是什么?

我正在使用 JAXB 2.2.2 来解析一个简单的 XML-REST 流。这是一段代码:

对象工厂类:

响应类:

“com.example.entities”必须包含 ObjectFactory 类或 jaxb.in​​dex。我想使用 ObjectFactory 类来决定一些 pojo 初始化,但这些类从未使用过:Response 类总是由 class.newInstance() 直接实例化。这有什么问题吗?

0 投票
1 回答
3988 浏览

validation - Jaxb2 自定义验证消息,可能吗?

任何人都知道如何使用 JaxB 2.x 进行自定义验证消息?我需要知道哪个标签或对象属性导致了错误。我已经有一个自定义的ValidationEventHandler,但是handleEvent方法的ValidationEvent事件参数并没有带来Node信息,只是XML文档中与错误相关的行和列。我的意图是用更用户友好的方式自定义解组错误消息。有办法做到这一点吗?

谢谢!

0 投票
2 回答
19653 浏览

java - 解组期间 XML 字符无效

我正在使用编码“UTF-8”将对象编组为 XML 文件。它成功生成文件。但是当我尝试将其解组时,出现错误:

在属性“{1}”的值中发现无效的 XML 字符(Unicode:0x{2})并且元素为“0”

字符为 0x1A 或 \u001a,在 UTF-8 中有效,但在 XML 中非法。JAXB 中的 Marshaller 允许将此字符写入 XML 文件,但 Unmarshaller 无法将其解析回来。我尝试使用另一种编码(UTF-16、ASCII 等)但仍然出错。

常见的解决方案是在 XML 解析之前删除/替换这个无效字符。但是如果我们需要这个字符,解组后如何获取原始字符呢?


在寻找此解决方案时,我想在解组之前用替换字符(例如点 =“。”)替换无效字符。

我创建了这个类:

然后这就是我读取和解组文件的方式:

不知何故,读者不会用我想要的字符替换无效字符。它会导致无法解组的错误 XML 数据。我的 InvalidXMLCharacterFilterReader 类有问题吗?

0 投票
2 回答
4991 浏览

java - 使用 jaxb 注释使用 Jersey 将 json 解组到 java bean 时如何使用一些间接性

我正在尝试解组一些收到的 json(来自 Jira restful web 服务)。

问题是:“问题”具有“摘要”属性和字段列表。

摘要不是作为属性出现在接收到的 json 中,而是作为“字段”属性的值。我坚持解组到这个结构:

收到的 JSON:

我不想使用 Jira 自己的客户端(我不想在我的应用程序中使用太多依赖项)。

编辑:我用另一种方式问了我的问题以试图弄清楚:如何使用 jax-rs 将 bean 结构映射到不同的模式

0 投票
1 回答
3558 浏览

java - 轴心编组器

我有一组使用 wsdl2java (Axis 1.4) 创建的类,我正在寻找一种方法来解组和编组来自/到 String 和 Object 的数据。我已经编写了一个 JAXB 解组器,它适用于我们的一些较新的内部对象,因为我们使用 xjc 创建类但没有时间转换旧的轴类并且需要按原样找到代码的编组/解组解决方案.

有人可以指点我一个方向。

谢谢!

0 投票
1 回答
2354 浏览

java - 复杂类型的 JAXB 值

* *编辑 - 最后我删除了抽象扩展以使其发挥作用,然后来自 Blaise 的答案有效

你好。
我的架构中有一个复杂的类型:

要解组的输入是这个

但是当我这样做时,我没有选择从 xjc 生成的类中访问值:workflowHTML.xml。这是生成的 AbstractWorkflow 类的开始是否有我可以在这个类中声明的注释,它扩展了一个抽象类,以指定它是一个本身携带值的元素? 它不应该被声明为FIELD吗?

编辑它是我需要实现读取值的扩展类,而不是我最初在这里拥有的抽象类。

谢谢阅读。

0 投票
1 回答
840 浏览

arrays - jaxb2Marshaller 将 XML 解组为一个空字节数组

这就是问题所在。我正在使用 Spring 3.0.4 创建一个 rest web 服务(实际上我是一个新手)。我想通过客户端作为 XML 表示形式传递的休眠来持久化一个对象。为了完成这个任务,我使用了 jaxb2。

客户端发送的对象是一个具有两个子对象的节点,即数据和元数据。

问题在于,当客户端发送其 XML 时,SIUserData 被解组为一个不可预测的 byte[] 数组:有时输入的一部分被切除,有时它只是空的。

例如这个输入

在具有空 StorageInterfaceData 内容属性的对象中解组。

我相信这个问题会影响 byte[] 的处理,因为我尝试在 String 结尾更改 StorageInterfaceData 内容属性的类型,一切正常:S。

它遵循代码。

节点

数据

散装对象

省略元数据类以免过于冗长。有人可以澄清一下吗?