• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    在.NET中使用Newtonsoft.Json转换,读取,写入的方法介绍
    全局引用
    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 Liststring> 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 Liststring>();
    }
    }


    其他:
    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
    http://blog.csdn.net/zhoufoxcn/article/details/6254657

    您可能感兴趣的文章:
    • c# Newtonsoft 六个值得使用的特性(上)
    • 用Newtonsoft将json串转为对象的方法(详解)
    • newtonsoft.json解析天气数据出错解决方法
    • c# Newtonsoft 六个值得使用的特性(下)
    上一篇:ASP.NET在IIS上注册报0x800702e4错误解决方法
    下一篇:asp.net中强制取消TFS2008中其它成员的签出文件的方法
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯

    时间:9:00-21:00 (节假日不休)

    地址:江苏信息产业基地11号楼四层

    《增值电信业务经营许可证》 苏B2-20120278

    在.NET中使用Newtonsoft.Json转换,读取,写入的方法介绍 在,.NET,中,使用,Newtonsoft.Json,