一 为了后面的便于理解,我先给出瞬时状态、持久化、永久状态的概念
1 瞬时状态:保存在内存的数据,程序退出后,数据就消失了。
2 永久状态:保存在磁盘上的程序数据,程序退出后依然存在。
3 持久化:将程序数据在瞬时状态和永久状态之间相互转换的机制。
二 首先 我们先给出序列化和反序列化的概念
序列化就是把内存中的对象转换为字节序列(二进制流),这些二进制流既可以写入文件, 实现了持久化; 还可以通过网络传输给其他JVM使用,为分布式应用(RMI Remote Method Invocation)提供支持。
反序列化把字节序列(二进制流)恢复为对象的过程称为对象的反序列化。
三 串行化 和 并行化
串行化也叫做序列化,我的理解,从字面意思就是一串的,把对象序列化之后就是一串(字节流)二进制流,所以称为串行化。
并行化也叫反序列化,就是把二进制流又转化为对象。我的理解:对象就不是一串,它有多个属性和多个方法,一起等待对象使用,这些多个属性和方法,所以为并行化。
粗略理解:
序列化:将数据转换为json格式;
反序列化:将json格式转换为规定的数据;
javascript中:
序列化:关键字stringify()
JSON.stringify({}); // '{}'
JSON.stringify(string); // 'string'
JSON.stringify({ name: 张三,age:18 }); // '{"name":"张三","age":18}'
反序列化:关键字parse()
var x = '{"name":"张三", "age":18}';
var y = JSON.parse(x); // {name: '张三', age: 18}
c#中:
使用json需安装nuget包:Newtonsoft.Json
序列化:关键字 JsonConvert.SerializeObject()
var json = "{\"Id\":1,\"Name\":\"Furion\"}";
var x = JsonConvert.DeserializeObject(json);
var y = JsonConvert.SerializeObject(x);
var d = 2;
反序列化:关键字JsonConvert.DeserializeObject()
var json = "{\"Id\":1,\"Name\":\"Furion\"}";
var x = JsonConvert.DeserializeObject(json);
var d = 2;
c#开发框架furion中
安装nuget包:furion 声明和引用构造方法:
private readonly IJsonSerializerProvider _jsonSerializer;
public SystemService(IJsonSerializerProvider jsonSerializer)
{
_jsonSerializer = jsonSerializer;
}
public object Json()
{
var json = "{\"Id\":1,\"Name\":\"Furion\"}";
var obj = _jsonSerializer.Deserialize<object>(json);
var f = _jsonSerializer.Serialize(obj);
return f;
}
序列化:关键字_jsonSerializer.Deserialize<object>() _jsonSerializer为IJsonSerializerProvider构造方法引入的名称
反序列化:关键字_jsonSerializer.Serialize()