我们为什么使用序列化?

2024-05-13

为什么我们需要使用序列化?

如果我们想通过网络发送一个对象或一段数据,我们可以使用字节流。如果我们想将一些数据保存到磁盘上,我们可以再次使用二进制模式和字节流来保存它。

那么使用序列化有什么好处呢?


从技术上讲,在低级别上,您的序列化对象也将最终作为电缆或文件系统上的字节流......

因此,您也可以将其视为将对象转换为字节流的标准化且已经可用的方法。存储/传输对象是一个非常常见的需求,在每个应用程序中重新发明这个轮子几乎没有什么意义。

正如其他人提到的,您也知道这个 object->stream_of_bytes 实现非常健壮,经过测试,并且通常与体系结构无关。

这并不意味着它是保存或传输对象的唯一可接受的方法:在某些情况下,您必须实现自己的方法,例如避免保存不必要的/私有成员(例如出于安全或性能原因)。但如果你的情况很简单,你可以通过使用框架、语言或虚拟机的序列化/反序列化来让你的生活更轻松,而不必自己实现。

希望这可以帮助。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我们为什么使用序列化? 的相关文章

  • 存储 PHP 数组的首选方法(json_encode 与序列化)

    我需要将多维关联数据数组存储在平面文件中以进行缓存 我偶尔可能会遇到需要将其转换为 JSON 以便在我的 Web 应用程序中使用的情况 但绝大多数时候我会直接在 PHP 中使用该数组 在此文本文件中将数组存储为 JSON 或 PHP 序列化
  • 您可以用 Google 的 Protocol Buffer 格式表示 CSV 数据吗?

    我最近发现了协议缓冲区 想知道它们是否可以应用于我的特定问题 基本上 我有一些 CSV 数据 需要将其转换为更紧凑的格式以进行存储 因为其中一些文件有几GB CSV中的每个字段都有一个标题 并且只有两种类型 字符串和小数 因为有时有很多有效
  • Django dumpdata 和 loaddata 不适用于多对多中介模型

    我在以下模型上将 dumpdata 与 Django 1 2 3 一起使用 class Bar models Model class Foo models Model bars models ManyToManyField Bar thro
  • Hibernate 和可序列化实体

    有谁知道是否有一个框架能够从实体类中剥离 Hibernate 集合以使它们可序列化 我查看了 BeanLib 但它似乎只进行实体的深层复制 而不允许我为实体类中的集合类型指定实现映射 BeanLib 目前不适用于 Hibernate 3 5
  • 如果 xmlwriter 是推荐的,那么 xmltextwriter 的用途是什么

    As per MSDN http msdn microsoft com en us library vstudio kkz7cs0d 28v vs 100 29 aspx 尽管 Microsoft NET Framework 包含 XmlT
  • 如何在 PHP 中反序列化 Perl Data::Dumper 输出

    我在 Perl 中有一个导出变量的结果 如下字符串 VAR1 guard gt undef work hand gt undef images gt 1 gt mini height gt 150 width gt 150 extensio
  • 强制 protobuf-net 忽略 IEnumerable/ICollection 接口

    如何让 protobuf net v2 忽略我的类实现 ICollection IEnumerable 等的事实 对于这个特定场景 我只希望序列化标记为 ProtoMember 的字段 我目前正在从使用 protobuf net v1 转换
  • 强制 spring boot jackson 反序列化器使用 BigDecimal

    我遇到一个问题 杰克逊将数值反序列化为我无法预测的任意类型 例如 如果有人传递值 14 jackson 会将其实例化为Integer 然而 如果有人传递值 14 01 那么 Jackson 会将其实例化为Double 这是一个问题 因为我有
  • 如何使 sgen.exe 保留程序集的版本?

    我想为我的程序集创建一个序列化程序集 sgen做得很好 但我不知道如何让它为序列化程序集分配与源程序集相同的版本 有任何想法吗 sgen似乎默认采用源程序集版本 这是相当合理的 这是我的运行方式 没有什么特别的 PathToSDK Micr
  • WCF - 将空元素转换为可为空的本机类型

    将 SOAP 字段元素留空会导致本机类型出现强制转换错误 遗憾的是 由于客户端限制 无法使用 xsi nil true 将 WCF 协定本机类型标记为 nullable 似乎不足以阻止将以下错误返回给客户端 字符串 不是有效的布尔值 在 S
  • WPF:BinaryFormatter 可以序列化 FlowDocument 实例吗?

    我喜欢使用binaryformatter来序列化流文档 但这是例外 Serializable public class BinFlow public FlowDocument my get set BinFlow myBF new BinF
  • 保存数据的最佳方法

    我创建了一个课程 我想在其中跟踪学生的统计数据 我打算稍后制作一个 GUI 来操作这些数据 我的主要问题是 保存和稍后检索这些数据的最佳方法是什么 我读过有关 pickle 和 JSON 的内容 但我并不真正了解它们是如何工作的 特别是它们
  • 使用 kryo 注册课程的策略

    我最近发现了 kryonet 库 它非常棒并且非常适合我的需求 然而 我遇到的一个问题是制定一种好的策略来注册所有可以转移的类 我知道我可以在每个对象中编写一个静态方法 该方法将返回它使用的所有类的列表 但我真的不想这样做 为了我自己的时间
  • Java 中序列化的目的是什么?

    我读过很多关于序列化的文章 以及它如何如此美好和伟大 但没有一个论点足够令人信服 我想知道是否有人能真正告诉我通过序列化一个类我们真正可以实现什么 让我们先定义序列化 然后我们才能讨论它为什么如此有用 序列化只是将现有对象转换为字节数组 该
  • JSON(Gson)反序列化为超类对象然后转换为子类对象的最佳方法是什么

    我目前正在研究在Android上使用Gson for Json 刚刚遇到这个问题 假设我们有如下类 class Command public int id COMMAND ID UNSPECIFIED class CommandSpecif
  • 如何处理类结构的变化并向后兼容使用 boost 序列化的数据/对象?

    我的任务是向使用的 C 类添加成员 boost serialization access 这些对象被存储到文本文件中并读回 但是 我需要向后兼容 并且新的 bool 成员必须被序列化 我需要允许新代码读取旧文件并仅写入新格式 具体来说 序列
  • 对象序列化 - 从 C# 或 java 到 Objective C

    服务器端 C 或 java 客户端 Objective C 我需要一种在 C java 中序列化对象并在 Objective C 中反序列化它的方法 我是 Objective C 的新手 我想知道从哪里可以获得有关此问题的信息 Thanks
  • 空合并运算符分配给 self

    我目前在 Unity 中设置了两个脚本来处理一些 UI 音频 一个是管理器 另一个是为特定 UI 元素播放声音 我所拥有的简化版本是这样的 public class AudioUIManager MonoBehaviour Only one
  • C# WPF 将粘贴在 richtextbox 中的 BitmapImage 转换为二进制

    我有一个 Richtextbox 我计划将其保存到数据库中 该数据库可以加载回同一个 Richtextbox 中 我已经让它工作了 这样我就可以将流程文档保存为 DataFormats XamlPackage 这可以保存图像 但问题是文本不
  • 序列化 ArrayList

    我正在尝试编写一个 Android 游戏 即使用户想要返回主菜单或者活动被系统终止 我也希望能够暂停游戏 onSaveInstanceState 似乎并没有给我很大的控制权来决定何时可以读回捆绑包 而且据我所知 捆绑包仅在短时间内有效 所以

随机推荐

  • 未加载 Firebird 扩展

    我正在尝试在 PHP 中使用 Firebird 扩展 我有扩展文件 php pdo firebird dll php interbase dll in my ext文件夹 我将它们添加到我的php ini像这样文件 PHP PDO FIRE
  • 音频html标签无法快进或快退控制

    我正在使用音频 html 标签从我的上传服务器加载音频 但我不知道为什么我的音频无法像往常一样循环 快进或快退控制 我的音频 标题 Accenpt Ranges bytes Connection Keep Alive Content Len
  • Jetpack 中的波浪框组成

    有没有办法用Canvas制作一个顶部有波浪形的盒子 我想知道这个效果是否可以直接用Canvas来实现 不需要有滚动动画 不太清楚你为什么在谈论Canvas 要裁剪这样的视图 您可以使用自定义Shape并将其应用到您的视图中Modifier
  • 如何在 VS Code 中打开模拟器或连接 LD Player 以实现 flutter?

    我想开发 flutter 应用程序 但我的笔记本电脑没有足够的 RAM 只有 4 GB 因此 经过在互联网上进行大量广泛的研究 我安装并设置了 flutter sdk android sdk 和 VS Code 但是 当我尝试运行示例应用程
  • 在 C# 中将 ulong 映射到 long ?

    我正在尝试将 ulong 映射到 long 反之亦然 将 uint 映射到 int 反之亦然 如下所示 为了将值保存在具有签名类型的 MS SQL 数据库中仅限整数和大整数 我这样做是因为我必须检查 在数据库中 一个数字 uint ulon
  • “mvn”不被识别为内部或外部命令、可操作程序或批处理文件

    可能是之前问过问题 但我发现了非常奇怪的错误 当我跑步时mvn versionbin 中的命令给出了版本和其他信息 但是 当我跑到垃圾箱外面时 它会出现异常 下面提到的结果 C Program Files apache maven 3 0
  • 从字符串中的链接中删除基本 URL

    我有一个带有图像链接的字符串 image link raw http website com files 2012 10 image001 png 现在我想删除http website com然后就得到 files 2012 10 imag
  • 无法执行'x86_64-conda_cos6-linux-gnu-gcc':没有这样的文件或目录(pysam安装)

    我正在尝试安装 pysam 执行后 python path to pysam master setup py build 这个错误的产生是 unable to execute x86 64 conda cos6 linux gnu gcc
  • 升级到 5.4 但“php -v”仍然返回旧版本

    我使用的是 OSX Lion 10 7 5 正如建议的如何在 Mac OS X 中升级 PHP https stackoverflow com questions 2526085 how do i upgrade php in mac os
  • 什么是多重重继承?

    我将以下称为 多重重新继承 直接继承一个类一次 并通过继承其一个或多个后代来间接继承一次或多次 通过继承一个类的两个或多个后代来间接继承一个类两次或多次 我想知道它是否存在以及如何明确访问嵌入的子对象 1 Professional C 2n
  • 在第一页加载时触发 jquery 脚本,然后不再为该用户触发?

    我在我的网站上使用这个 jQuery 模态窗口脚本 http www zurb com playground reveal modal plugin http www zurb com playground reveal modal plu
  • Bipush 在 JVM 中如何工作?

    我知道 iload 接受整数 1 到 5 但是如何使用 bipush 指令扩展到更高的数字 特定整数如何与字节码一起存储 有几种不同的指令可用于推送整数常量 最小的是iconst 指令 这些只是一个字节 因为该值是在操作码本身中编码的 ic
  • 使 flake8 区分未定义函数和星型导入

    我有一个相当大的项目 我试图在发布之前清理它 但是当我运行 flake8 时 我得到了大量的 F405
  • lambda 表达式是多线程的吗?

    lambda 表达式是多线程的吗 假设当你将数学公式编写为 lambda 方法时 当你将其传递给另一个方法时 它会是多线程的吗 不是100 清楚你问的是什么 您是否想问 lambda 是否自然地在不同的线程上运行 如果是这样 则它们只是 S
  • Swing GUI 出现 IntelliJ 错误“contentPane 无法设置为 null。”从终端编译时

    当我从 IntelliJ 编译我的项目时 没有任何问题 我的程序运行顺利 但是当我尝试使用 javac 从终端编译它时 警告 注意 Victor presentation TableControllerMenu java 使用未经检查或不安
  • 加载 highchart 时 Android 错误膨胀类

    我正在尝试加载highcharts via Dialog 下面是我的代码 Gradle implementation com highsoft highcharts highcharts 9 0 1 XML
  • 如何使组合键唯一?

    I am making a database of students in one school Here is what I have so far 如果您不喜欢阅读 请跳至 简而言之 部分 问题是我对这个设计并不满意 我想要的组合gra
  • Recoil 中的动态原子键

    我正在尝试创建一个动态表单 其中表单输入字段是根据 API 返回的数据呈现的 由于atom需要有一个唯一的键 我尝试将它包装在一个函数中 但是每次我更新字段值或重新安装组件 尝试更改选项卡 时 我都会收到一条警告 我在这里做了一个小的运行示
  • 在edittext android中插入imageview

    我想将 imageview 放在 edittext 中 可能吗 我检查了 evernote 应用程序 它能够将照片放在编辑文本部分 我想让我的应用程序完全相同 我如何才能将从图库中选择的图像视图放入编辑文本中 我首先尝试将 imagevie
  • 我们为什么使用序列化?

    为什么我们需要使用序列化 如果我们想通过网络发送一个对象或一段数据 我们可以使用字节流 如果我们想将一些数据保存到磁盘上 我们可以再次使用二进制模式和字节流来保存它 那么使用序列化有什么好处呢 从技术上讲 在低级别上 您的序列化对象也将最终