问题标签 [xstream]

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 投票
2 回答
1833 浏览

generics - 如何让 XStream 很好地输出 Scala 列表?我可以写一个自定义转换器吗?

这段代码:

产生这个 XML:

相反,我想要这样:

这类似于通用 java 集合的序列化方式。最好的方法是什么?

通过实现我自己的转换器,我已经完成了大部分工作,但我被困在解组方法上,不清楚如何实例化一个空列表......

0 投票
3 回答
1498 浏览

xml - 使用 XStream 自动关闭标签?

有没有办法让 XStream 生成自闭合元素?

例如

代替

0 投票
6 回答
10700 浏览

java - 使用 xstream 自定义 java 集合的序列化

我有一个需要序列化为 XML 的对象,其中包含以下字段:

XStream 将它序列化得很好(在一些别名之后),如下所示:

就目前而言,这没关系,但我希望能够将<string>元素重命名为<tag>. 从 XStream 站点上的别名文档中,我看不到明显的方法。我错过了一些明显的东西吗?

0 投票
1 回答
185 浏览

java - xstream > 在模型中进行抽象时的向后兼容性

我有


不丢失 obj1 的内容。

目前,除了丢失 obj1 的内容外,我阅读旧 xml 没有任何问题。这在 xstream 中是否以某种方式支持?我的意思是抽象在模型更改中很常见。

0 投票
4 回答
2817 浏览

java - 序列化 XML 以使用 Java 流式传输的最佳方法?

我们使用 XStream 对 XML 进行序列化/反序列化……结果出现了OutOfMemory 异常。

首先,我不明白为什么我们会收到错误,因为我们有 500MB 分配给服务器。

问题是——我们应该做出哪些改变来避免麻烦?我们希望确保这种实施规模化。

目前我们有大约 60K 个对象,每个对象大约 50 个字节。我们将 60K POJO 加载到内存中,并将它们序列化为一个字符串,我们使用HttpClient. 接收时,我们得到整个String,然后转换成POJO。XML/对象层次结构如下:

我认为最好的方法是不要将 POJO 存储在内存中,也不要将内容写入单个字符串。相反,我们应该将各个<data>POJO 写入流。XStream支持这一点,但似乎<meta>不支持该元素。数据需要采用以下形式:

那么什么方法最容易流式传输整个树呢?

0 投票
4 回答
6019 浏览

java - Xstream:隐式忽略所有字段

如何告诉 Xstream 仅序列化显式注释的字段并忽略其余字段?

我正在尝试序列化一个休眠持久对象,并且所有与代理相关的字段都被序列化,这在我的 xml 中是我不想要的。
例如

不是我想要在我的 xml 中的东西。

编辑:我不认为我把这个问题说清楚了。一个类可以从一个基类继承,而我对基类属性没有控制(如在休眠的情况下)。

在这种情况下,当我序列化 B 类时,基类字段ShouldNotBeSerialized也会被序列化。这不是我想要的。在大多数情况下,我无法控制 A 类。

因此,我想默认省略所有字段并仅序列化我明确指定注释的字段。我想避免GaryF正在做的事情,我需要明确指定我需要省略的字段。

0 投票
5 回答
14332 浏览

java - Xstream:删除类属性

0 投票
2 回答
999 浏览

spring - Spring中的MarshallingView调整输出?

我有一些 POJO,它们是我正在研究的这个 RESTful API 的基础。但是,我需要在一些响应中包含一些其他信息以使 API 更完整。我真的不想将这些额外的信息放在 POJO 中,而是将其包含在 Web 服务层,就好像它是一样的。

它处理有“约会”的“人”。每个约会只有一个人。

所以,我有一个像 /Patients/1 这样的 RESTful 调用,它基本上抓取了 Person 的 POJO,我目前正在使用 XStream 对其进行序列化并在途中发送它。这很好用,但我想做这样的事情:

下一个和上一个约会实际上并未包含在 Person POJO 中。我正在寻找一种好的“弹簧方式”来实现这一目标。客户可以执行类似 /Patients/1/PreviousAppointment 和 /Patients/1/NextAppointment 的操作,但我希望减少呼叫量(可能是预优化?),并在他们需要时为他们提供获取更多信息的方法通过使用他的href。

使用 XStreamMarshaller 非常优雅,因为我所做的一切都是将 POJO 或 POJO 列表的视图交给它并处理它。但我需要在他们被送出去之前给他们一些医生。

谢谢!

0 投票
2 回答
2939 浏览

java - XStream:在我解析时折叠 XML 层次结构

我有一个 XML 文档(由 Adob​​e XFA 表单生成),其中包含如下数据:

由于这个文件是在别处定义的,我不能随意更改我得到的 XML 的格式。

在我的 Java 代码中,我创建了一个包含 Title、Start 和 End Dates 的 Position 类。

我的问题是,当我使用 XStream 解析文件时,它需要一个 PositionBorder 类来保存标题和日期。我想基本上忽略边框并将所有字段放入 Position 类。

我真正想做的是使用类似 convertAnother 方法来转换位置元素的子元素。我试图这样做但它失败了,因为我的 PositionConverter 被调用为 PositionBorder(当我调用 convertAnother 时)。

任何人都知道如何在解析时处理折叠 XML 的结构?

0 投票
1 回答
1728 浏览

dtd - xStream 中 DTD 的默认值

给定的 XML 文件

和 xStream 代码

我的浏览器将其呈现如下:

注意channelMandatory="true"(浏览器处理了 DTD 指令)

而 xStream 产生

这里channelMandatory="false"(xStream 忽略了 "channelMandatory (true | false) "true"" DTD 指令)

我想念什么?如何“告诉”xStream 处理 DTD 指令?以及如何在 xStream 中启用 DTD 验证?