本文摘自PHP中文网,作者黄舟,侵删。
可以使用DataContractJsonSerializer类将类型实例序列化为JSON字符串,并将JSON字符串反序列化为类型实例。 DataContractJsonSerializer在System.Runtime.Serialization.Json命名空间下,.NET Framework 3.5包含在System.ServiceModel.Web.dll中,需要添加对其的引用;.NET Framework 4在System.Runtime.Serialization中。
利用DataContractJsonSerializer序列化和反序列化的代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | 1: using System;
2: using System.Collections.Generic;
3: using System.Linq;
4: using System.Web;
5: using System.Runtime.Serialization.Json;
6: using System.IO;
7: using System.Text;
8:
9: /// <summary>
10: /// JSON序列化和反序列化辅助类
11: /// </summary>
12: public class JsonHelper
13: {
14: /// <summary>
15: /// JSON序列化
16: /// </summary>
17: public static string JsonSerializer<T>(T t)
18: {
19: DataContractJsonSerializer ser = new DataContractJsonSerializer( typeof (T));
20: MemoryStream ms = new MemoryStream();
21: ser.WriteObject(ms, t);
22: string jsonString = Encoding.UTF8.GetString(ms.ToArray());
23: ms.Close();
24: return jsonString;
25: }
26:
27: /// <summary>
28: /// JSON反序列化
29: /// </summary>
30: public static T JsonDeserialize<T>( string jsonString)
31: {
32: DataContractJsonSerializer ser = new DataContractJsonSerializer( typeof (T));
33: MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(jsonString));
34: T obj = (T)ser.ReadObject(ms);
35: return obj;
36: }
37: }
|
序列化Demo:
阅读剩余部分
相关阅读 >>
c#开发微信门户及应用(三)之文本消息和图文消息应答
asp.net c#中application的用法教程
c#开发微信门户及应用(一)之微信接口的如何使用(图)
.net core如何动态调用泛型解决方法
c# md5hash的用法及实例
c#如何通过对象属性名修改值的实例
c#中datetime与时间戳转换的实例代码
.net framework类库的主要功能是什么?
.net和c#有什么区别
c#编程如何获取电脑硬件信息的方法?
更多相关阅读请进入《.net》频道 >>
清华大学出版社
作者:[美]克里斯琴·内格尔(Christian Nagel)著。出版时间:2019年3月。
转载请注明出处:木庄网络博客 » .NET中JSON数据进行序列化和反序列化操作分析