zoukankan      html  css  js  c++  java
  • Asp.Net使用Json(.net3.5,C#)

    .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 { getset; }  
    10.         [DataMember(Order = 1)]  
    11.         public int TagID { getset; }  
    12.         [DataMember(Order = 2)]  
    13.         public int ArtID { getset; }          
    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); 
  • 相关阅读:
    silverlight.js详解.
    Silverlight做随机图形
    腾讯与微软合作,准备应用Silverlight技术
    Flex的起步推动新语言学习
    微软Silverlight将支持DRM数字保护
    Kit 3D 更新
    用silverlight来开发简单的相册.
    加班一星期的结果
    构建Flex应用的10大误区
    ubuntu下SVN服务器安装配置 下的svn 常用命令
  • 原文地址:https://www.cnblogs.com/jes_shaw/p/1507833.html
Copyright © 2011-2022 走看看