Josn 序列化
这几天在做移动后台服务,由于移动端的流量比较小,所以需要尽量的减小传输的数据包的大小,开始用的传XML,由于webservice生成的XML会自带很多东西,这样无疑是没有必要的,经讨论,最后换成用Json传输数据。
既然是在.Net框架中用Json序列化,这里必然会用到Json.NET,当然,如果有闲心的话可以将对象构造成Json的格式。网上有很多Json.NET dll文件下载。
http://json.codeplex.com/Release/ProjectReleases.aspx
类库下载后,第一步就是引用,这里不多说,接下来是如何使用这个东西。
序列化的话,我们会用到Newtonsoft.Json.JsonConvert.SerializeObject(Object obj)这个东西,只要将对象传入方法就可以得到相应的Json语句。
很简单,这里贴一个在网上找的泛型的序列化方法。
/// <summary> /// JSON序列化 /// </summary> public static string JsonSerializer<T>(T t) { DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(T)); MemoryStream ms = new MemoryStream(); ser.WriteObject(ms, t); string jsonString = Encoding.UTF8.GetString(ms.ToArray()); ms.Close(); return jsonString; } /// <summary> /// JSON反序列化 /// </summary> public static T JsonDeserialize<T>(string jsonString) { DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(T)); MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(jsonString)); T obj = (T)ser.ReadObject(ms); return obj; }