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

互联网 17-9-2
这篇文章主要介绍了C#实现JSON和对象之间互相转换功能,结合实例形式较为详细的分析了C#实现对象与json之间相互转换的操作技巧,需要的朋友可以参考下

本文实例讲述了C#实现JSON和对象之间互相转换功能。分享给大家供大家参考,具体如下:

1.首先是声明用户信息对象,DataContract修饰类,表示可以被解析成JSON,DataMember修饰属性,Order表示 解析的顺序,另外Lover是数组列表,表示女朋友个数

Address 表示送货地址,DailyRecord 表示日常记录

using System;  using System.Collections.Generic;  using System.Linq;  using System.Text;  using System.Runtime.Serialization;  namespace FunctionTest.Model  {    [DataContract]    public class UserInfo    {      [DataMember(Order =0)]      public string UserName { get; set; }      [DataMember(Order = 1)]      public int Age { get; set; }      [DataMember(Order = 2)]      public int Gender { get; set; }      [DataMember(Order =3)]      public List<string> Lover { get; set; }      [DataMember(Order = 4)]      public ContactAddress Address { get; set; }      [DataMember(Order = 5)]      public Dictionary<string, string> DailyRecord {        get; set;      }    }    [DataContract]    public class ContactAddress    {      [DataMember(Order =0)]      public string Province { get; set; }      [DataMember(Order = 1)]      public string City { get; set; }      [DataMember(Order = 2)]      public string Country { get; set; }      [DataMember(Order = 3)]      public string Details { get; set; }    }  }

2.JSON帮助类 核心代码

/// <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.对象-->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.反序列化后的结果

{"UserName":"刘德华","Age":10,"Gender":1,"Lover":["美女1","美女2","美女3"],"Address":{"Province":"湖南省","City":"长沙市","Country":"望城县",  "Details":"某旮旯快递找不到的地方"},"DailyRecord":[{"Key":"星期一","Value":"吃饭"},{"Key":"星期二","Value":"洗衣服"},{"Key":"星期三","Value":"好事情"}]}

以上就是C#如何实现JSON与对象之间互相转换功能示例的详细内容,更多内容请关注技术你好其它相关文章!

来源链接:
免责声明:
1.资讯内容不构成投资建议,投资者应独立决策并自行承担风险
2.本文版权归属原作所有,仅代表作者本人观点,不代表本站的观点或立场
标签: csharp
上一篇:php获取远程图片并下载保存到本地的方法分析 下一篇:C#中Observer观察者模式解决牛顿童鞋成绩问题的实例

相关资讯