• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

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

c# 搞代码 4年前 (2022-01-09) 22次浏览 已收录 0个评论

这篇文章主要介绍了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 Stream<p style="color:transparent">本文来源gao!daima.com搞$代!码网</p>Reader(ms))    {      result = read.ReadToEnd();    }  }  return result;}

3.调用

//1.对象-->JSONUserInfo 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与对象之间互相转换功能示例的详细内容,更多请关注搞代码gaodaima其它相关文章!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:C#如何实现JSON与对象之间互相转换功能示例

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址