序列化
对象如何2进制传输“?序列化!然后反手一个反序列化~
直接上代码
1.热门的json 因为js可以直接调
JsonHelper帮助类
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Web.Script.Serialization;
using Newtonsoft.Json;
namespace 序列化
{
class JsonHelper
{
#region //第三方的比微软更快<!!!双方的版本一定要一致>
/// <summary>
/// Newtonsoft.Json;库的 JsonConvert.SerializeObject
/// 将对象序列化--》第三方库 !!!!!!!一定要注意《版本》的一致 不然会出错
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="obj"></param>
/// <returns></returns>
public static string ToJson<T>(T obj) //一定要注意《版本》的一致 不然会出错
{
return JsonConvert.SerializeObject(obj);
}
/// <summary>
/// Newtonsoft.Json 反序列话
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="content"></param>
/// <returns></returns>
public static T ToObject<T>(string content)
{
return JsonConvert.DeserializeObject<T>(content);
}
#endregion
#region //序列化微软官方
/// <summary>
/// 微软官方序列化
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="obj"></param>
/// <returns></returns>
public static string ObjectToStirng<T>(T obj) //一定要注意《版本》的一致 不然会出错
{
JavaScriptSerializer jss = new JavaScriptSerializer();
return jss.Serialize(obj);
}
/// <summary>
/// 微软官方反序列话
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="content"></param>
/// <returns></returns>
public static T StringToObject<T>(string content)
{
JavaScriptSerializer jss = new JavaScriptSerializer();
return jss.Deserialize<T>(content);
}
#endregion
}
}
2.调用测试
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace 序列化
{
class Node
{
public int num { get; set; }
public string name { get; set; }
}
class Program
{
static void Main(string[] args)
{
//微软方法测试
List<Node> nodes = new List<Node>()
{
new Node(){ num=1,name="zhazha"},
new Node(){num=2 ,name="zhazha3"}
};
var tt=JsonHelper.ObjectToStirng<List<Node>>(nodes);
Console.WriteLine(tt);
List<Node> nodes1 = JsonHelper.StringToObject<List<Node>>(tt);
//第三方更快,测试
var tt2 = JsonHelper.ToJson<List<Node>>(nodes);
Console.WriteLine(tt2);
List<Node> nodes2 = JsonHelper.ToObject<List<Node>>(tt2);
}
}
}
其他的序列化代码
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200330205224508.png