C#如何实现JSON与对象之间互相转换功能示例


当前第2页 返回上一页

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

/// <summary>

/// Json转换成对象

/// </summary>

/// <typeparam name="T"></typeparam>

/// <param name="jsonText"></param>

/// <returns></returns>

public static T JsonToObject<T>(string jsonText)

{

  DataContractJsonSerializer s = new DataContractJsonSerializer(typeof(T));

  MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(jsonText));

  T obj = (T)s.ReadObject(ms);

  ms.Dispose();

  return obj;

}

/// <summary>

/// 对象转换成JSON

/// </summary>

/// <typeparam name="T"></typeparam>

/// <param name="obj"></param>

/// <returns></returns>

public static string ObjectToJSON<T>(T obj)

{

  DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(T));

  string result = string.Empty;

  using (MemoryStream ms = new MemoryStream())

  {

    serializer.WriteObject(ms, obj);

    ms.Position = 0;

    using (StreamReader read = new StreamReader(ms))

    {

      result = read.ReadToEnd();

    }

  }

  return result;

}

3.调用


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

//1.对象-->JSON

UserInfo info = new UserInfo

{

    Age = 10,

    Gender = 1,

    UserName = "刘德华",

    Lover = new List<string> { "美女1", "美女2", "美女3" },

    Address = new ContactAddress

    {

      Province = "湖南省",

      City = "长沙市",

      Country = "望城县",

      Details = "某旮旯快递找不到的地方"

    },

    DailyRecord = new Dictionary<string, string> { { "星期一", "吃饭" }, { "星期二", "洗衣服" }, { "星期三", "好事情" } }

};

string json = ObjectToJSON<UserInfo>(info);

4.反序列化后的结果

代码如下:

1

2

{"UserName":"刘德华","Age":10,"Gender":1,"Lover":["美女1","美女2","美女3"],"Address":{"Province":"湖南省","City":"长沙市","Country":"望城县",

"Details":"某旮旯快递找不到的地方"},"DailyRecord":[{"Key":"星期一","Value":"吃饭"},{"Key":"星期二","Value":"洗衣服"},{"Key":"星期三","Value":"好事情"}]}

以上就是C#如何实现JSON与对象之间互相转换功能示例的详细内容!

返回前面的内容

相关阅读 >>

asp .net 面试题及答案分享

c#中序列化的使用总结

关于.net 3.5中的委托实例

c# 一些面试试题的实例教程

十大开源的.net用户界面框架

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

有关c#工厂模式简单讲解

c#实现与现有.net事件桥接的简单代码

c#中关于rabbitmq应用的图文代码详解

比较c#中值类型和引用类型的区别

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




打赏

取消

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

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

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

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

评论

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