问题标签 [serialization]

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 投票
3 回答
4686 浏览

c# - 在 C# (.NET 3.5) 中反序列化 xml 时是否可以设置默认值?

我有一个小问题,有点令人沮丧。在 C# (.NET 3.5) 中反序列化 xml 时是否可以设置默认值?基本上我试图反序列化一些不受我控制的xml,一个元素看起来像这样:

它也可以是这样的:

现在,在我的课堂上,我有以下应该接收数据的属性:

这适用于第一个 xml 元素示例,但第二个失败。我尝试将属性类型更改为 int?但这无济于事。我也需要在某个时候将其序列化回相同的 xml 格式,但我正在尝试使用内置的序列化支持,而不必求助于自己的序列化支持。

有没有人有这种问题的经验?

0 投票
2 回答
3808 浏览

java - 序列化 java.lang.Locale

有一个类可以很好地序列化为带有 XMLEncoder 的 xml 中的所有变量。除了拥有java.util.Locale的那个。可能是什么诀窍?

0 投票
2 回答
2036 浏览

c++ - 如何使用数据访问对象进行序列化和关系数据库数据访问

我正在开发一个 C++ 域模型类库,它应该提供一些设施或框架(即接口类等),用于向二进制文件和 RDBMS 写入/读取类实例数据。这个库的基础是一个使用 RDBMS 的应用程序,并且有几个方法通过执行一系列数据库检索和更新调用来获取成员数据的集合来实例化一个类。序列化数据访问具有不同的数据组织方式,因此我希望域模型完全不知道主键/外键、ID 等。

为了解决这个问题,我考虑使用数据访问对象(DAO) 模式,并希望对 DAO 对象的“粒度”、生命周期和使用提供一些建议(在您的回复中,请注意我将使用 C++ ,而不是 Java,并且域类不能保存来自 RDBMS 或二进制文件存储的任何 ID/密钥信息):

  1. 域对象的每个 Foo 实例是否都有自己的 FooDAO 实例,或者 Foo 类的所有实例是否都有一个 FooDAO 实例?
  2. FooDAO 是为每个 Foo 实例创建一次,还是仅在需要访问数据时才创建 FooDAO 实例,然后立即销毁?
  3. DAO 上的J2EE页面除了 DAO 之外还引入了 DTO。为什么 DAO 不能传输数据?
  4. 对于具有其他域类 Bar 的实例的复杂域类 Foo,FooDAO 类似乎不可避免地使用 BarDAO 类来检索数据。这将导致域类结构和 DAO 类结构中的并行层次结构/依赖关系。如何最好地管理它?

谢谢你的帮助!

0 投票
4 回答
7311 浏览

ruby - 你如何对 Ruby 代码进行字符串化/序列化?

我希望能够在我的 Ruby 代码中编写 lambda/Proc,对其进行序列化以便我可以将其写入磁盘,然后稍后执行 lambda。有点像...

后来,在单独运行 Ruby 解释器时,我想说...

Marshal.dump 不适用于 Procs。我知道 Perl 有Data::Dump::Streamer,而在 Lisp 中这是微不足道的。但是有没有办法在 Ruby 中做到这一点?换句话说, 的实施将是什么?save_for_later

编辑我下面的答案很好,但它不会关闭自由变量(如x)并将它们与 lambda 一起序列化。所以在我的例子中......

...字符串输出不包含x. 是否有考虑到这一点的解决方案,也许是通过序列化符号表?你可以在 Ruby 中访问它吗?

编辑 2:我更新了我的答案以包含序列化局部变量。这似乎可以接受。

0 投票
6 回答
3088 浏览

.net - 跨不同框架版本的 .NET 序列化的稳定性

我正在处理的一个项目需要在关闭之前序列化一个数据结构,并在它再次启动时从这个序列化数据中恢复其状态。

去年,我们正在为 .NET 1.1 构建,遇到了一个棘手的问题:

  • 我们的代码在 .NET 2.0 上运行
  • 客户升级了一些软件,以某种方式将 1.1 设置为默认值
  • 我们的代码在 .NET 1.1 上运行,无法反序列化其存储状态

通过禁止特定的软件升级,这个特定问题得到了“解决”,现在我们的目标是 .NET 2.0 框架(因此我们不可能在 1.1 上运行),这应该不是问题。

这种序列化在 2.0 和更新的框架之间再次发生不兼容变化的可能性有多大?如果我们将<supportedVersion>代码修复为 2.0.50727,那么 2.0.50727.1434 和 2.0.50727.nnnn(未来的某个版本)之间发生变化的可能性有多大?被序列化的数据结构是标准类库中的数组、映射、字符串等。

此外,即使在进一步的 .NET 升级之后,是否也能保证始终安装 2.0.50727 框架?欢迎指向 Microsoft 文档。

0 投票
3 回答
1939 浏览

java - 在类中存储图像/声音的最佳方式?

我正在开发一种应用程序实例之间的交换格式,以便用户可以将信息保存到文件并稍后恢复。整个“交换格式”是一个被序列化并写入磁盘的类。

您建议如何在该类中存储图形/声音信息?我想避免只是将文件放入 .jar 中。

0 投票
4 回答
4306 浏览

web-services - 从 DTO 转换为实体和从实体转换为 DTO 的简单方法?

我最近参与了几个分布式客户端/服务器项目,我们经常遇到的一个痛点是将 DTO 对象转换为我们的实体,反之亦然。我想知道是否有人对这个时间槽有一个“简单”的解决方案?

我想到的一件事是使用反射进行某种翻译......我想你必须确保你的属性名称在线路的每一侧都完全相同 - 但似乎它可能会起作用。

只是在寻找一种方法来避免我的开发中的一些时间沉没。

谢谢!!

0 投票
1 回答
810 浏览

java - Object(Output|Input)Stream二进制协议

我想知道是否有人有一些资源来描述ObjectOutputStream. 我当然意识到对象本身可以通过实现Externalizable接口来指定它们的数据,所以我想我更多地关注对象图的结构——如果你愿意的话,元数据。

我正在编写一个必须与遗留 Java 程序对话的 C 程序。我无法更改这些要求中的任何一个,因此我发现自己对ObjectOutputStream协议进行了逆向工程。(有一个服务器使用 HTTP 进行传输并返回 Object*Stream 作为 HTTP 响应。)

但是,我觉得那里的其他人必须以前做过这项工作。你能指出任何资源来加快我的工作吗?

0 投票
2 回答
5279 浏览

.net - 如何在 .net Web 服务中序列化可为空的 DateTime?

我正在尝试通过 Web 服务将一些 Subsonic 集合传递给客户端。当我引用 Web 服务时,IDE 抱怨:

无法序列化 System.Nullable`1[System.DateTime] 类型的成员“EndDate”。XmlAttribute/XmlText 不能用于编码复杂类型。

有没有办法在 .net Web 服务中序列化可为空的复杂类型?

0 投票
3 回答
1990 浏览

c# - 在 C# 中从序列化 XML 加载对象的最佳实践

问候,

我有一个可以从文件构造的特定对象,例如:

从本质上讲,我想说“好的,现在我们刚刚反序列化了这个对象,这就是我们实际上的对象。” 有几种方法可以做到这一点,我想知道哪种方法被认为是最佳实践。我的想法是:

  • 构建一个 copy-into-me 函数,逐个字段复制对象。这是当前的实现,我很确定这是一个可怕的想法,因为每当将新成员添加到对象时,我还需要记住将其添加到“复制到我”功能中,并且没有办法可以维护.
  • 为 ConfigObj 类构建一个静态方法,该方法充当加载对象的事实上的构造函数。这听起来好多了,但不是最佳实践。

不过,我对两者中的任何一个都不完全满意。这里公认的最佳实践是什么?