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

from:http://www.dockty.com/Article/aspnet_json_net30.aspx

.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); 
欢迎加群互相学习,共同进步。QQ群:iOS: 58099570 | Android: 572064792 | Nodejs:329118122 做人要厚道,转载请注明出处!























本文转自张昺华-sky博客园博客,原文链接:http://www.cnblogs.com/sunshine-anycall/archive/2009/07/20/1527169.html ,如需转载请自行联系原作者

Json.NET 描述: json。 网络是一个流行的高性能JSON为。NET框架 灵活的JSON序列化器对之间的换。净对象和JSON linq到JSON用于手动阅读和写作JSON 高性能,速度比。净的内置JSON序列化器 写缩进,容易阅读JSON JSON和XML之间进行换 支持: .NET 2, .NET 3.5, .NET 4, .NET 4.5, Silverlight, Windows Phone and Windows 8 Store 版本: Json.NET has different libaries for the various .NET Framework versions. -Net45: .NET latest (4.5) -Net40: .NET 4.0 -Net35: .NET 3.5 -Net20: .NET 2.0 -WinRT: Windows 8 Store -Portable45: .NET 4.5, Windows Phone 8, Windows 8 Store -Portable40: .NET 4.0, Windows Phone 7, Windows 8 Store, Silverlight 4 Notes: Microsoft stopped support for the Compact Framework in Visual Studio 2010. For a Compact Framework 3.5 build download Json.NET 3.5. For a Silverlight 3.0 build download Json.NET 3.5. Microsoft Visual Studio 2010 重新生成解决方案的一些警告处理 警告 2 预定义类型“System.Action”是在全局别名的多个程序集中定义的;将使用“c:\Program Files\Reference Assemblies\Microsoft\Framework\.NETFramework \v4.0\mscorlib.dll”中的定义 ClassLibrary1 警告 3 预定义类型“System.Action”是在全局别名的多个程序集中定义的;将使用“c:\Program Files\Reference Assemblies\Microsoft\Framework\.NETFramework \v4.0\mscorlib.dll”中的定义 ClassLibrary1 警告 4 预定义类型“System.Action”是在全局别名的多个程序集中定义的;将使用“c:\Program Files\Reference Assemblies\Microsoft\Framework\.NETFramework \v4.0\mscorlib.dll”中的定义 ClassLibrary1 警告 5 预定义类型“System.Action”是在全局别名的多个程序集中定义的;将使用“c:\Program Files\Reference Assemblies\Microsoft\Framework\.NETFramework \v4.0\mscorlib.dll”中的定义 ClassLibrary1 警告 6 预定义类型“System.Func”是在全局别名的多个程序集中定义的;将使用“c:\Program Files\Reference Assemblies\Microsoft\Framework\.NETFramework \v4.0\mscorlib.dll”中的定义 ClassLibrary1 警告 7 预定义类型“System.Func”是在全局别名的多个程序集中定义的;将使用“c:\Program Files\Reference Assemblies\Microsoft\Framework\.NETFramework \v4.0\mscorlib.dll”中的定义 ClassLibrary1 警告 8 预定义类型“System.Func”是在全局别名的多个程序集中定义的;将使用“c:\Program Files\Reference Assemblies\Microsoft\Framework\.NETFramework \v4.0\mscorlib.dll”中的定义 ClassLibrary1 警告 9 预定义类型“System.Func”是在全局别名的多个程序集中定义的;将使用“c:\Program Files\Reference Assemblies\Microsoft\Framework\.NETFramework \v4.0\mscorlib.dll”中的定义 ClassLibrary1 警告 10 预定义类型“System.Func”是在全局别名的多个程序集中定义的;将使用“c:\Program Files\Reference Assemblies\Microsoft\Framework\.NETFramework \v4.0\mscorlib.dll”中的定义 ClassLibrary1 问题原因:检查程序发现,由于项目中引用了Newtonsoft.Json.Net20,从而造成系统的类重名(项目FRAMEWORK的版本4.0)。 Newtonsoft.Json.Net 包括: .NET 2, .NET 3.5, .NET 4, .NET 4.5, Silverlight, Windows Phone and Windows 8 Store,所有dll文件和源码,有需要的同学可以直接下载。 个人网站多多支持:www.mlyuansu.com
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值