问题标签 [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.
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 实体:
类别实体:
serialization - Marshal.load 上的 ClassNotFoundException
我正在尝试在 Scala 中进行元帅转储和加载...
...但是对 Marshal.load 的调用引发了 ClassNotFoundException ...
我也尝试过使用完全限定的类名,但没有运气。我错过了什么?
java - JAXB 解组到多个 pojo
我试图弄清楚是否可以将 xml 元素解组为多个 pojo。例如:
对于 xml:
物品类别
ItemDimensions 类
我曾尝试使用由 Netbeans 6.9 生成的许多 JAXB 映射和许多测试类来完成类似的事情,但现在都没有了。有谁知道这是否可以在没有任何中间对象的情况下完成?
java - JAXB-Unmarshalling 期间的 ObjectFactory 角色是什么?
我正在使用 JAXB 2.2.2 来解析一个简单的 XML-REST 流。这是一段代码:
对象工厂类:
响应类:
“com.example.entities”必须包含 ObjectFactory 类或 jaxb.index。我想使用 ObjectFactory 类来决定一些 pojo 初始化,但这些类从未使用过:Response 类总是由 class.newInstance() 直接实例化。这有什么问题吗?
validation - Jaxb2 自定义验证消息,可能吗?
任何人都知道如何使用 JaxB 2.x 进行自定义验证消息?我需要知道哪个标签或对象属性导致了错误。我已经有一个自定义的ValidationEventHandler,但是handleEvent方法的ValidationEvent事件参数并没有带来Node信息,只是XML文档中与错误相关的行和列。我的意图是用更用户友好的方式自定义解组错误消息。有办法做到这一点吗?
谢谢!
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 类有问题吗?
java - 使用 jaxb 注释使用 Jersey 将 json 解组到 java bean 时如何使用一些间接性
我正在尝试解组一些收到的 json(来自 Jira restful web 服务)。
问题是:“问题”具有“摘要”属性和字段列表。
摘要不是作为属性出现在接收到的 json 中,而是作为“字段”属性的值。我坚持解组到这个结构:
收到的 JSON:
我不想使用 Jira 自己的客户端(我不想在我的应用程序中使用太多依赖项)。
编辑:我用另一种方式问了我的问题以试图弄清楚:如何使用 jax-rs 将 bean 结构映射到不同的模式
java - 轴心编组器
我有一组使用 wsdl2java (Axis 1.4) 创建的类,我正在寻找一种方法来解组和编组来自/到 String 和 Object 的数据。我已经编写了一个 JAXB 解组器,它适用于我们的一些较新的内部对象,因为我们使用 xjc 创建类但没有时间转换旧的轴类并且需要按原样找到代码的编组/解组解决方案.
有人可以指点我一个方向。
谢谢!
java - 复杂类型的 JAXB 值
* *编辑 - 最后我删除了抽象扩展以使其发挥作用,然后来自 Blaise 的答案有效
你好。
我的架构中有一个复杂的类型:
要解组的输入是这个
但是当我这样做时,我没有选择从 xjc 生成的类中访问值:workflowHTML.xml。这是生成的 AbstractWorkflow 类的开始是否有我可以在这个类中声明的注释,它扩展了一个抽象类,以指定它是一个本身携带值的元素? 它不应该被声明为FIELD吗?
编辑它是我需要实现读取值的扩展类,而不是我最初在这里拥有的抽象类。
谢谢阅读。
arrays - jaxb2Marshaller 将 XML 解组为一个空字节数组
这就是问题所在。我正在使用 Spring 3.0.4 创建一个 rest web 服务(实际上我是一个新手)。我想通过客户端作为 XML 表示形式传递的休眠来持久化一个对象。为了完成这个任务,我使用了 jaxb2。
客户端发送的对象是一个具有两个子对象的节点,即数据和元数据。
问题在于,当客户端发送其 XML 时,SIUserData 被解组为一个不可预测的 byte[] 数组:有时输入的一部分被切除,有时它只是空的。
例如这个输入
在具有空 StorageInterfaceData 内容属性的对象中解组。
我相信这个问题会影响 byte[] 的处理,因为我尝试在 String 结尾更改 StorageInterfaceData 内容属性的类型,一切正常:S。
它遵循代码。
节点
数据
散装对象
省略元数据类以免过于冗长。有人可以澄清一下吗?