序列化到底是神马?
2013-11-12 11:24
204 查看
简明扼要版:
Serialization is the process of converting unordered data (such as an object) into a series of tokens 。(stackoverflow)
序列化一词的本意就是将数据排列成一系列(series)的原子性小词(token),以便存储和传输。
复杂饶舌版:
serialization is the process of translating data structures or object state into a format that can be stored (for example, in a file or memory buffer, or transmitted across a network connection link) and resurrected later in the same or another computer environment。(wiki)
序列化就是指将数据结构或对象转化为一种可以被存储(比如说,在文本、内存或通过网络链接传输)的格式,并且可以在相同或另一台电脑的环境中复原的过程。
补充:在计算机术语中,marshalling(配置整齐)/unmarshalling,deflating(紧缩)/inflating也是指相同的意思。
C#中的实践:
BinaryFormatter是用于将对象序列化到输出流。一般就是将对象存储在磁盘上。
这个流中存储了该对象的精确的二进制副本。
SoapFormatter则是是序列化为Soap格式。
打开person.txt,结果是一个符合SOAP协议的文件:
XmlSerializer则是序列化为Xml格式:
打开person.txt,结果是一个符合XML文档格式的文件:
而现在经常是使用 json作为文件传输格式,因此最常用的是以下方法:
NewtonSoft.Json dll的序列化和反序列化
以及.net自带的JavaScriptSerializer:
在javascript中常用Json2.js中的方法:
以及一个jQuery中不常用的:
Serialization is the process of converting unordered data (such as an object) into a series of tokens 。(stackoverflow)
序列化一词的本意就是将数据排列成一系列(series)的原子性小词(token),以便存储和传输。
复杂饶舌版:
serialization is the process of translating data structures or object state into a format that can be stored (for example, in a file or memory buffer, or transmitted across a network connection link) and resurrected later in the same or another computer environment。(wiki)
序列化就是指将数据结构或对象转化为一种可以被存储(比如说,在文本、内存或通过网络链接传输)的格式,并且可以在相同或另一台电脑的环境中复原的过程。
补充:在计算机术语中,marshalling(配置整齐)/unmarshalling,deflating(紧缩)/inflating也是指相同的意思。
C#中的实践:
BinaryFormatter是用于将对象序列化到输出流。一般就是将对象存储在磁盘上。
这个流中存储了该对象的精确的二进制副本。
Person p = new Person(); p.Id = "123"; p.Name = "Benjamin"; FileStream stream = new FileStream("D:\\person.bin", FileMode.Create, FileAccess.Write, FileShare.None); BinaryFormatter formatter = new BinaryFormatter(); formatter.Serialize(stream, p); stream.Close();
SoapFormatter则是是序列化为Soap格式。
Person p = new Person(); p.Id = "123"; p.Name = "Benjamin"; FileStream stream = new FileStream("C:\\person.txt", FileMode.Create, FileAccess.Write,FileShare.None); SoapFormatter formatter = new SoapFormatter(); formatter.Serialize(stream, p); stream.Close();
打开person.txt,结果是一个符合SOAP协议的文件:
XmlSerializer则是序列化为Xml格式:
Person p = new Person(); p.Id = "123"; p.Name = "Benjiamin"; FileStream stream = new FileStream("C:\\person.xml", FileMode.Create, FileAccess.Write, FileShare.None); XmlSerializer xmlserializer = new XmlSerializer(typeof(Person)); xmlserializer.Serialize(stream, p); stream.Close();
打开person.txt,结果是一个符合XML文档格式的文件:
而现在经常是使用 json作为文件传输格式,因此最常用的是以下方法:
NewtonSoft.Json dll的序列化和反序列化
string s1 = JsonConvert.SerializeObject(p); Person p1 = JsonConvert.DeserializeObject<Person>(s1);
以及.net自带的JavaScriptSerializer:
string s2 = new JavaScriptSerializer().Serialize(p); Person p2= new JavaScriptSerializer().Deserialize<Person>(s2);
在javascript中常用Json2.js中的方法:
var person = new Object(); person.Id = "112233"; person.Name = "Benjamin";
var personStr = JSON.stringify(person); //序列化 var person = JSON.parse(personStr);//反序列化
以及一个jQuery中不常用的:
$("form").serialize() //将一个表单内有name属性且选中的元素序列化为形如single=Single2&multiple=Multiple&check=check2 的字符串
相关文章推荐
- [C++中级进阶]001_C++0x里的完美转发到底是神马?
- java序列化和反序列化到底怎么回事?
- 换行符到底是个神马东西?换行符详解
- 软考到底是神马?
- javascript中的this到底是神马
- AI芯片到底是个神马 | 解读技术 | AI基础 | 算力必备
- 操蛋的用户需求,用户需求到底是神马?
- post与get,这两人到底神马区别??
- 从神马搜索到阿里上市 马云到底想要干什么?
- RegisterStartupScript与RegisterClientScriptBlock到底有神马区别...
- apache和tomcat到底是神马关系
- Scrum到底是个神马玩意儿
- task_struct到底是个神马东西?
- 他们到底需要神马???——戏说“用户需求”
- 3个问题告诉你,品牌到底是个神马东西?
- 数字签名和数字证书到底是个神马玩意?
- 学渣告诉你,到底神马是傅里叶级数!转自 新浪@工程师style
- C#序列化和反序列化到底是什么意思
- 他们到底需要神马???——戏说“用户需求”
- 遗迹系列 -【学渣告诉你】到底神马是傅里叶级数!