问题标签 [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 投票
1 回答
2570 浏览

converter - XStream 中的自定义转换器

我正在使用 XStream 将我的对象序列化为 XML 格式。我得到的格式化 xml 如下: node1, node2, node 3 是 pojo,DetailDollars 的属性

我有一个要求,我必须计算一个百分比,例如 100/ 25 并将新节点添加到现有节点。所以,最终的输出应该是:

我编写了一个自定义转换器并注册到我的 xstream 对象。

但是,我得到的 xml 流只有新节点:

我不确定哪个 xstream api 会为我提供所需的格式。你能帮我解决这个问题吗?

0 投票
1 回答
1326 浏览

serialization - XStream <-> 替代二进制格式(例如协议缓冲区)

我们目前使用 XStream 将我们的 Web 服务输入/输出编码为 XML。但是,我们正在考虑切换到具有多种语言(protobuf、Thrift、Hessian 等)的代码生成器的二进制格式,以便更轻松地支持新客户,减少对手动编码的依赖(也更好地支持我们的包含二进制数据的消息格式) .

然而,我们在服务器上的大多数对象都是 POJO,使用 XStream 通过反射和注释处理序列化,并且这些库中的大多数假设它们将自己生成 POJO。我可以想到几种连接替代库的方法:

  1. 为目标格式编写一个 XStream 封送拆收器。

  2. 编写自定义代码以将 POJO 编组到/来自替代库生成的类。

  3. 子类化生成的类以实现 POJO 逻辑。可能需要一些重写。(我还提到我们想使用 Terracotta 吗?)

  4. 使用另一个同时支持反射(如 XStream)和代码生成的库。

但是我不确定哪个序列化库最适合上述技术。

0 投票
4 回答
16839 浏览

xml - XStream 同时解析属性和值

我有以下 XML

和一个城市班

我尝试了以下别名来解析 XML

但是我不知道如何设置“loc”标签的值,如果我尝试在 XML 中转换 City 对象,我得到

当我真的需要得到这个

然后,如果我尝试将 XML 解析为 City 对象,我会得到带有空值的字段“名称”。

任何人都知道如何设置正确的别名来做到这一点?提前致谢。

0 投票
1 回答
378 浏览

java - 如何使用 xStream 输出具有 List 属性的 Java 对象?

我正在尝试将一些 Java 对象输出为 JSON,它们具有列表属性,我希望将其格式化为 { "People" : [ { "Name" : "Bob" } , { "Name" : "Jim" } ] }

但是,我无法弄清楚如何使用 XStream 做到这一点。它总是输出为 { "Person" : { "Name" : "Bob" }, "Person" : { "Name" : "Bob" }

有没有办法来解决这个问题?如果您需要更具体的内容,我已经在 github 中将一些示例代码与单元测试放在一起: http: //gist.github.com/371358

谢谢!

0 投票
1 回答
910 浏览

xml - XStream Marshalling 返回 xml 和 json 的问题

当我使用

它返回以下 xml...

而且,当我使用

它返回以下 json ...

现在,因为我想完全摆脱类属性(阅读它不是用其他任何东西来别名,而是删除它)我使用以下代码。

这给出了以下 xml...

但是,当我在上面创建 xStream 对象时传递 new JsonHierarchicalStreamDriver() 时,它不会返回 json。它返回上面显示的相同 xml。

这里出了什么问题?

提前致谢...

0 投票
1 回答
989 浏览

xml - xstream 和 iPhone SDK 之间的 Base64 编码/解码

我正在将一个字节数组从 Java 服务器传递到 XML 中的 iPad 客户端。服务器正在使用 xstream 使用EncodedByteArrayConverter将字节数组转换为 XML,这应该将数组转换为 Base 64。使用 xstream,我可以在 java 客户端中将 xml 解码回正确的字节数组,但在 iPad 客户端中,我收到一个无效的长度错误。为了进行解码,我使用了本页底部的代码。字符串的长度确实不是4 的倍数,所以我的字符串一定有一些奇怪的地方——尽管由于 xstream 可以很好地解码它,我猜我需要在 iPad 端做一些事情来让它解码。我尝试在字符串末尾切断填充以将其缩小到正确的大小,这确实允许解码器工作,但我最终得到的 JPG 具有无效的标题,并且无法显示。

在服务器端,我使用以下代码:

在客户端,我从 XML 解析回调中调用上述解码器,如下所示:

有什么想法可能会出错吗?

0 投票
1 回答
10981 浏览

java - 让 XStream 忽略一个特定的私有变量

我目前正在为其编写保存函数的类有一点问题。

我正在使用 XStream (com.thoughtworks.xstream) 使用 DOMDriver 将类序列化为 XML。

该类如下所示:

所以,这里的问题是我不想在序列化世界时序列化配置,而是我想在调用 fromXml() 时给 XStream 一个预先构造的配置实例。

这里的问题主要是类设计,Configuration 持有对 GUI 类的私有引用,因此序列化 Configuration 意味着用 GUI 等完全序列化整个应用程序。这有点糟糕。

有没有办法指示 XStream 不序列化私有字段配置,并在加载时为 XStream 提供要使用的配置实例?

问候丹尼尔

0 投票
1 回答
1167 浏览

java - XStream 可序列化对象

我目前正在使用 XStream 来序列化我的一些未实现 Serializable 的对象。如果对象确实实现了 Serializable ,是否有办法告诉 XStream 使用 Java 的默认序列化,如果没有实现则回退到 XML 序列化?或者我需要在它上面实现一个简单的层来检查吗?

谢谢,杰夫

0 投票
2 回答
919 浏览

java - 使用 XStream 以单独的“成功”和“失败”形式反序列化 XML 响应?

我计划使用 XStream 和 Java 在对象和 XML 请求以及 XML 响应和对象之间进行转换,其中 XML 通过 HTTP/HTTPS 流动。在响应方面,我可以得到一个“成功”的响应,它似乎会映射到一个 Java 类,或者一个“失败”的响应,它似乎会映射到另一个 Java 类。

例如,对于“文件列表”请求,我可以得到肯定的响应,例如,

或者我可能会得到否定的回应,例如,

为了处理这个问题,我应该在一个类中包含两种情况下的字段,还是应该以某种方式使用 XStream 来“有条件地”创建两个潜在类之一?

来自同一对象中的两个响应案例的字段的案例看起来像这样:

我不知道“在成功或错误的情况下使用 XStream 并创建不同的对象”是什么样的。有可能以某种方式做到这一点吗?这是更好还是更糟的方式?

无论如何,任何关于如何使用 XStream 处理这种成功与失败响应案例的建议都将不胜感激。提前致谢!

0 投票
1 回答
106 浏览

java - Xstream 给出不同的结果

我们将 XStream 用于我们的宁静服务。但是,对于具有相同值的字段,Xstream 为我们提供了不同的结果。假设它是 Book 对象:

为此的json是:

但是,如果我将作者添加到集合中,我会得到不同的结果。

有没有人遇到这个问题并知道解决方案?