主页 > 知识库 > 在.NET中使用Newtonsoft.Json转换,读取,写入的方法介绍

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

热门标签:电子围栏 阿里云 Mysql连接数设置 银行业务 Linux服务器 团购网站 科大讯飞语音识别系统 服务器配置
全局引用
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 六个值得使用的特性(下)

标签:江苏 衢州 枣庄 蚌埠 大理 广元 萍乡 衡水

巨人网络通讯声明:本文标题《在.NET中使用Newtonsoft.Json转换,读取,写入的方法介绍》,本文关键词  ;如发现本文内容存在版权问题,烦请提供相关信息告之我们,我们将及时沟通与处理。本站内容系统采集于网络,涉及言论、版权与本站无关。
  • 相关文章
  • 收缩
    • 微信客服
    • 微信二维码
    • 电话咨询

    • 400-1100-266