.NET中JSON数据进行序列化和反序列化操作分析


本文摘自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#中匿名对象与var以及动态类型 dynamic的详解

c#中匿名委托以及lambda表达式的实例详解

关于.net 3.5中的委托实例

.net core和.net区别

c#实现表格隔行换色

c#中关于多线程创建对象的示例分享

c# 中十进制与二进制、十六进制、八进制转换详解

.net 中的程序集

介绍c#中的堆和栈

c#线程控制的实例详解

更多相关阅读请进入《.net》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...