在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
全局引用 using Newtonsoft.Json; using Newtonsoft.Json.Converters; //把Json字符串反序列化为对象 目标对象 = JavaScriptConvert.DeserializeObject(JSON字符串, typeof(目标对象)); //把目标对象序列化为Json字符串 stringJson字符串 = JavaScriptConvert.SerializeObject(目标对象); 1、引用Newtonsoft.Json.dll; 2、在项目中添加引用; 序列化和反序列在.net项目中,简单示例 复制代码 代码如下: Productproduct = newProduct(); product.Name = "Apple"; product.Expiry = newDateTime(2008, 12, 28); product.Price = 3.99M; product.Sizes = newstring[] { "Small", "Medium", "Large"}; stringoutput = JavaScriptConvert.SerializeObject(product); 注意: 一、如果需要序列化实体 1、类名必须添加[DataContract]标记; 2、类属性添加[DataMember]标记; 二、如果有不需要序列化的字段,可以给该字段添加[JsonIgnore]标记 在Newtonsoft这个类库中对于日期的序列化有多种方式,可以类的DataTime成员添加上对应的标记,这样在进行序列化和反序列化时就会按照指定的方式进行, 在本例中User类(如下类)的CreateDate属性添加的属性是[JsonConverter(typeof(IsoDateTimeConverter))],而Birthday属性添加的属性是[JsonConverter(typeof(JavaScriptDateTimeConverter))],从序列化的结果可以看出来它们最终的表现形式并不一样。 复制代码 代码如下: [DataContract] public class User { /// <summary> /// 编号 /// </summary> [DataMember] public int UserId { get; set; } /// <summary> /// 用户名 /// </summary> [DataMember] public string UserName { get; set; } /// <summary> /// 创建时间 /// </summary> [DataMember] [JsonConverter(typeof(IsoDateTimeConverter))] public DateTime CreateDate { get; set; } /// <summary> /// 生日 /// </summary> [DataMember] [JsonConverter(typeof(JavaScriptDateTimeConverter))] public DateTime Birthday { get; set; } /// <summary> /// 相关URL /// </summary> [DataMember] public List<string> Urls { get; set; } /// <summary> /// 薪水 /// </summary> [ScriptIgnore]//使用JavaScriptSerializer序列化时不序列化此字段 [IgnoreDataMember]//使用DataContractJsonSerializer序列化时不序列化此字段 [JsonIgnore]//使用JsonConvert序列化时不序列化此字段 public int Salary { get; set; } /// <summary> /// 权利级别 /// </summary> [DataMember] public Priority Priority { get; set; } public User() { Urls = new List<string>(); } } 其他: Newtonsoft.Json.JsonConvert类是非微软提供的一个JSON序列化和反序列的开源免费的类库(下载网址是:http://www.codeplex.com/json/),它提供了更灵活的序列化和反序列化控制,并且如果你的开发环境使用的是.NET Framework3.5及以后版本的话,你就可以使用Linq to JSON,这样一来面对一大段的数据不必一一解析,你可以使用Linq to JSON解析出你关心的那部分即可,非常方便。 参考: http://www.cnblogs.com/gghxh/archive/2008/01/11/1035482.html |
请发表评论