博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
.NET json格式 使用Newtonsoft.Json.JsonConvert类 附读取文件方法
阅读量:4323 次
发布时间:2019-06-06

本文共 3722 字,大约阅读时间需要 12 分钟。

来自:

为了便于下面的演示,下面提供一个类的代码:

[DataContract]publicclass User{////// 编号///[DataMember]publicint UserId { get; set; }////// 用户名///[DataMember]publicstring UserName { get; set; }////// 创建时间///[DataMember][JsonConverter(typeof(IsoDateTimeConverter))]public DateTime CreateDate { get; set; }////// 生日///[DataMember][JsonConverter(typeof(JavaScriptDateTimeConverter))]public DateTime Birthday { get; set; }////// 相关URL///[DataMember]public List
Urls { get; set; }///
/// 薪水/////[ScriptIgnore]//使用JavaScriptSerializer序列化时不序列化此字段//[IgnoreDataMember]//使用DataContractJsonSerializer序列化时不序列化此字段//[JsonIgnore]//使用JsonConvert序列化时不序列化此字段publicint Salary { get; set; }///
/// 权利级别///[DataMember]public Priority Priority { get; set; }public User(){Urls =new List
();}}///
/// 权利级别///publicenum Priority:byte{Lowest=0x1,BelowNormal=0x2,Normal=0x4,AboveNormal=0x8,Highest=0x16}

使用Newtonsoft.Json.JsonConvert类

  Newtonsoft.Json.JsonConvert类是非微软提供的一个JSON序列化和反序列的开源免费的类库(下载网址是:),它提供了更灵活的序列化和反序列化控制,并且如果你的开发环境使用的是.NET Framework3.5及以后版本的话,你就可以使用Linq to JSON,这样一来面对一大段的数据不必一一解析,你可以使用Linq to JSON解析出你关心的那部分即可,非常方便。
  下面是使用Newtonsoft.Json.JsonConvert类的例子:

publicstaticvoid JsonConvertDemo(){User user =new User { UserId =1, UserName ="李刚", CreateDate = DateTime.Now.AddYears(-30), Birthday = DateTime.Now.AddYears(-50), Priority = Priority.BelowNormal, Salary =5000 };//JsonConvert类在Newtonsoft.Json.Net35.dll中,注意到http://www.codeplex.com/json/下载这个dll并添加这个引用//JSON序列化string result = JsonConvert.SerializeObject(user);Console.WriteLine("使用JsonConvert序列化后的结果:{0},长度:{1}", result, result.Length);//JSON反序列化user = JsonConvert.DeserializeObject
(result);Console.WriteLine("使用JsonConvert反序列化后的结果:UserId:{0},UserName: {1},CreateDate:{2},Priority:{3}", user.UserId, user.UserName, user.CreateDate, user.Priority);}publicstaticvoid JsonConvertLinqDemo(){User user =new User { UserId =1, UserName ="周公", CreateDate = DateTime.Now.AddYears(-8), Birthday = DateTime.Now.AddYears(-32), Priority = Priority.Lowest, Salary =500, Urls =new List
{ "http://zhoufoxcn.blog.51cto.com", "http://blog.csdn.net/zhoufoxcn" } };//JsonConvert类在Newtonsoft.Json.Net35.dll中,注意到http://www.codeplex.com/json/下载这个dll并添加这个引用//JSON序列化string result = JsonConvert.SerializeObject(user);Console.WriteLine("使用JsonConvert序列化后的结果:{0},长度:{1}", result, result.Length);//使用Linq to JSONJObject jobject = JObject.Parse(result);JToken token = jobject["Urls"];List
urlList =new List
();foreach (JToken t in token){urlList.Add(t.ToString());}Console.Write("使用Linq to JSON反序列化后的结果:[");for (int i =0; i < urlList.Count -1;i++ ){Console.Write(urlList[i] +",");}Console.WriteLine(urlList[urlList.Count -1] +"]");}
  1. 使用JsonConvert序列化后的结果:{"UserId":1,"UserName":"李刚","CreateDate":"1981-03-16T00:20:12.1875+08:00","Birthday":new Date(-277630787812),"Urls":[],"Priority":2},长度:132  
  2. 使用JsonConvert反序列化后的结果:UserId:1,UserName:李刚,CreateDate:1981-3-16 0:20:12,Priority:BelowNormal  
  3. 使用JsonConvert序列化后的结果:{"UserId":1,"UserName":"周公","CreateDate":"2003-03-16T00:20:12.40625+08:00","Birthday":new Date(290362812406),"Urls":["http://zhoufoxcn.blog.51cto.com","http://blog.csdn.net/zhoufoxcn"],"Priority":1},长度:198  
  4. 使用Linq to JSON反序列化后的结果:["http://zhoufoxcn.blog.51cto.com","http://blog.csdn.net/zhoufoxcn"] 

json文件

{

"Location":"香格里拉",
"ActivityDatetime":"2013-11-20 18:00:00",
}

StreamReader sr = new StreamReader(jsonFileName, Encoding.Default);            string str1 = sr.ReadToEnd();            //反序列化测试对象           JsonHelper jsonHelper = new JsonHelper();            jsonHelper =JsonConvert.DeserializeObject
(str1);

 

 

转载于:https://www.cnblogs.com/bkycjj/p/3386060.html

你可能感兴趣的文章
spring特点与好处
查看>>
html 自制属性
查看>>
面向对象术语概念
查看>>
细胞(cell) 矩阵快速幂
查看>>
HDU - 1272 小希的迷宫
查看>>
EntityFramework(1)基础概念与Database First
查看>>
Spring Boot 任务
查看>>
2018APIO 进京赶考
查看>>
Duilib程序添加托盘图标显示
查看>>
在windows上搭建redis集群(redis-cluster)
查看>>
【省选十连测之九】【DP】【组合计数去重】【欧拉函数】基本题
查看>>
文件上传功能 -- jquery.form.js/springmvc
查看>>
阿里云ecs(phpstudy一件包)
查看>>
Python核心编程的四大神兽:迭代器、生成器、闭包以及装饰器
查看>>
linux /proc/sys/fs/file-nr /proc/sys/fs/file-max /etc/security/limits.conf 三者的关联
查看>>
AndroidStudio-快捷键
查看>>
用python DIY一个图片转pdf工具并打包成exe
查看>>
6月14 空控制器和空操作及命名空间
查看>>
volicity文法学习和总结
查看>>
block 块的内部结构
查看>>