C# 对象JSON序列化与反序列化

Newtonsoft.Json 方式 序列化与反序列化

CorpSendText text = new CorpSendText("text excample");//CorpSendText:自定义类型
string jsonText =Newtonsoft.Json.JsonConvert.SerializeObject(text);//序列化
CorpSendText para = Newtonsoft.Json.JsonConvert.DeserializeObject<CorpSendText>(jsonText);//反序列化未自定义对象类型
JObject jsonobject = (Newtonsoft.Json.Linq.JObject)Newtonsoft.Json.JsonConvert.DeserializeObject(jsonText);//反序列化为JSON对象类型(JObject)

C#自带方式 序列化与反序列化

命名空间: System.Runtime.Serialization.Json
程序集: System.Runtime.Serialization(位于 System.Runtime.Serialization.dll)
参考
DataContractJsonSerializer对象:实现序列化或反序列化指定类型的对象。

序列化步骤:
  1. 新实例化DataContractJsonSerializer对象
  2. DataContractJsonSerializer对象将预要序列化的对象读入流stream:WriteObject需考虑异常处理,比如DataTable序列化要求设置TableName
  3. 将流stream写入byte[]
  4. 解码字节数组所有字节为一个字符串
var serializer = new System.Runtime.Serialization.Json.DataContractJsonSerializer(typeof(T));//1:(指定要序列化的对象类型)
var stream = new System.IO.MemoryStream();
serializer.WriteObject(stream, obj);//2
byte[] dataBytes = new byte[stream.Length];
stream.Position = 0;//获取或设置流中的当前位置
stream.Read(dataBytes, 0, (int)stream.Length);//3
string json = Encoding.UTF8.GetString(dataBytes);//4
反序列化步骤:
  1. DataContractJsonSerializer对象以 JSON(JavaScript 对象表示法)格式读取文档流,并返回反序列化的对象。
  2. byte[]写入stream
  3. 将指定字符串中的所有字符编码为一个字节序列byte[]
  4. 新实例化DataContractJsonSerializer对象
System.Runtime.Serialization.Json.DataContractJsonSerializer serializer = new System.Runtime.Serialization.Json.DataContractJsonSerializer(typeof(T));//1:(指定要序列化的对象类型)
byte[] dataBytes = Encoding.UTF8.GetBytes(jsonString);//2
var stream = new System.IO.MemoryStream(dataBytes);//3
T t1 = (T)serializer.ReadObject(stream);//4
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值