好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

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#程序设计有所帮助。

原文链接:http://HdhCmsTestcnblogs测试数据/HCCZX/p/5238556.html

dy("nrwz");

查看更多关于C#实现JSON和对象之间互相转换功能示例的详细内容...

  阅读:40次