• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

Asp.Net使用Json(.net3.5,C#)

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

.net FrameWork 3.5 内置了对JSON的支持,我们可以直接使用。
一。准备
首先引用:System.ServiceModel.Web.dll ,System.Runtime.Serialization.dll 。
然后在using里

  1. using System.Runtime.Serialization;  
  2. using System.Runtime.Serialization.Json; 

二。编写需要序列化的类

  1. using System.Runtime.Serialization;  
  2. namespace Dockty.Data  
  3. {  
  4.     [DataContract(Namespace = "http://www.dockty.com")]  
  5.     public class ArtTags  
  6.     {  
  7.         public ArtTags() { }  
  8.         [DataMember(Order = 0)]  
  9.         public int ID { get; set; }  
  10.         [DataMember(Order = 1)]  
  11.         public int TagID { get; set; }  
  12.         [DataMember(Order = 2)]  
  13.         public int ArtID { get; set; }          
  14.     }  

定义好要序列化的对象和顺序。

三。JSON帮助类

  1. using System.IO;  
  2. using System.Runtime.Serialization.Json;  
  3. using System.Text;  
  4.  
  5. namespace Dockty.Data  
  6. {  
  7.     public static class JsonHelper<T>  
  8.     {  
  9.         static JsonHelper()  
  10.         { }  
  11.  
  12.         /// <summary>  
  13.         /// 序列化为JSON对象  
  14.         /// </summary>  
  15.         /// <param name="obj"></param>  
  16.         /// <returns></returns>  
  17.         public static string WriteObject(T obj)  
  18.         {  
  19.             var serializer = new DataContractJsonSerializer(typeof(T));  
  20.             var mstream = new MemoryStream();  
  21.             serializer.WriteObject(mstream, obj);  
  22.             byte[] Bytes = new byte[mstream.Length];  
  23.             mstream.Position = 0;  
  24.             mstream.Read(Bytes, 0, (int)mstream.Length);  
  25.             return Encoding.UTF8.GetString(Bytes);  
  26.         }  
  27.  
  28.         /// <summary>  
  29.         /// JSON对象反序列化  
  30.         /// </summary>  
  31.         /// <param name="data"></param>  
  32.         /// <returns></returns>  
  33.         public static T ReadObject(string data)  
  34.         {  
  35.             var mstream = new MemoryStream(Encoding.UTF8.GetBytes(data));  
  36.             var serializer = new DataContractJsonSerializer(typeof(T));  
  37.             return (T)serializer.ReadObject(mstream);  
  38.         }  
  39.     }  
  40. }  

四。序列化与反序列化

  1. ArtTags tags = new ArtTags() { ArtID = 1, ID = 1, TagID = 1 };  
  2. //序列化  
  3. string strTags = JsonHelper<ArtTags>.WriteObject(tags);  
  4. //反序列化  
  5. ArtTags newTags = JsonHelper<ArtTags>.ReadObject(strTags); 
此文章由 Dockty 于 2008-12-26 10:55:10 编辑
标签:

.Net 3.5ASP.NETJSONC#

引用通告:http://www.Dockty.com/Article/2/Trackback.ashx

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C#网络编程二:SOCKET编程发布时间:2022-07-13
下一篇:
C#编写Windows服务在VS中调试的步骤发布时间:2022-07-13
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap