串行化的“对象”到底是什么?

时间:2019-02-02 13:59:14

标签: serialization

object在本文中不是“目标”或“意图”。

引用了序列化,我有兴趣更好地理解object一词的使用:

  

串行化是将对象转换为字节流以存储对象或将其传输到内存,数据库或文件的过程。其主要目的是保存对象的状态,以便能够在需要时重新创建它。反向过程称为反序列化。

     

...

     

此图显示了序列化的整个过程

     

Overall process of serialization

     

...

     

通过序列化,开发人员可以执行一些操作,例如通过Web服务将对象发送到远程应用程序,将对象从一个域传递到另一个域,将对象作为XML字符串通过防火墙传递,或维护安全性或跨应用程序的用户特定信息

(在上述情况下)object是否包含(但不一定限于)人们喜欢建模的任何现实现象?例如:

作为一个具体的例子,这个叙述的对象是百老汇的赞助人吗?还是它有收入?

  

一个虚构的百老汇演出每个星期六有3场演出。门票是   对于特定节目和列举的席位有效。的过程   编码showtime并依次枚举seat number定义   唯一票证。车票用条形码编码,包括   用来衡量出勤率的数据。

其他复制的具体示例:图片说明:

Rex, my dog, is serialised!

类推解释:

假设我正在和我的好友通电话,我正在告诉他我的新小狗。

这是我的问题:这只小狗是一只活着的呼吸哺乳动物。我该如何通过电话线传送一只小狗?我无法将小狗实际放入电话听筒中。

因此,我将不得不通过电话传达小狗的表示。换句话说,我然后序列化了我的狗Rex,然后通过电话线向他发送了Rex的序列化版本:

{ "name":"Rex", "age":5, "favourite_food": pedigree_choice_cuts, "favourite_game": fetch_ball, "favourite_hobby": wagging_tail }

这是一个完美的代表-我的狗的序列化。

摘要:

串行化基本上意味着将我的狗Rex转换成其他东西-JSON对象-然后可以在电话线上以一系列1和0进行传输。然后,我在纽约市的好友可以将这些1和0转换回一个JSON对象-这样他就可以很好地代表我的狗Rex。简单!

1 个答案:

答案 0 :(得分:0)

表示任何种类的复合数据,例如集合,结构,联合,数组或(用object-oriented语言表示)某个对象(例如,某些instance中的class,如果您的语言包含它们;但是您可以基于prototype的编程语言,例如JavaScript)。

还要注意endianness。它使二进制数据的可移植性低于文本数据。

查看多个serialization库以获取更多信息。从简单的东西开始,例如RPC XDR,大多数JSON库等。另请参见s11n