JSON使用JsonPropertyAttribute
2015-12-12 08:55
671 查看
一、JSON使用JsonPropertyAttribute重命名属性名
1.先创建一个Movie对象,然后在其属性上添加JsonProperty,并指定重命名的名称。注意:属性Name和Director已指定。
2.实例化Movie对象,然后序列化。
3.运行结果,注意:属性ReleaseYear未被重命名。
![](http://img.blog.csdn.net/20151212085412967)
二、JSON使用JsonPropertyAttribute序列化升序排序属性
1.先创建一个Movie对象,然后指定JsonProperty,并添加Order属性。
2.实例化Movie对象,然后序列化。
3.运行结果。注意:未指定Order序号的属性,界定于大于负数小于正数,并按默认顺序排序。
![](http://img.blog.csdn.net/20151212090852468)
三、JSON使用JsonPropertyAttribute反序列化属性时,Required指定属性性质
1.创建一个Movie对象,给属性添加JsonProperty,并指定其Required的性质。属性Name必须有值,DateTime可以为空.
2.实例化Movie对象,反序列化JSON。
3.运行结果是
![](http://img.blog.csdn.net/20151212095531245)
四、JSON使用JsonPropertyAttribute序列化引用类型集合
1.创建一个Director对象,并声明一个本身类型的属性,指定JsonProperty中的IsReference为true.
2.创建一个Movie对象,声明一个Director集合的属性,指定JsonProperty中的IsReference为true.
3.序列化对象
4.运行结果
![](http://img.blog.csdn.net/20151212104618975)
五、JSON使用JsonPropertyAttribute序列化忽略属性null
1.创建一个Movie对象,并在属性上指定JsonProperty,添加NullValueHandling,忽略null
2.实例化对象Movie对象,然后序列化
3.运行的结果
![](http://img.blog.csdn.net/20151212115201995)
JSON源代码下载地址:http://download.csdn.net/detail/lovegonghui/9342751
1.先创建一个Movie对象,然后在其属性上添加JsonProperty,并指定重命名的名称。注意:属性Name和Director已指定。
using System; using System.Collections.Generic; using System.Linq; using System.Text; using GongHuiNewtonsoft.Json; namespace JSONDemo { public class Movie { [JsonProperty("name")] public string Name { get; set; } [JsonProperty("Chinese Director")] public string Director { get; set; } public int ReleaseYear { get; set; } } }
2.实例化Movie对象,然后序列化。
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Data; using GongHuiNewtonsoft.Json; using GongHuiNewtonsoft.Json.Serialization; using GongHuiNewtonsoft.Json.Converters; namespace JSONDemo { class Program { static void Main(string[] args) { Movie m = new Movie { Name = "非诚勿扰1", Director = "冯小刚", ReleaseYear = 2008 }; string json = JsonConvert.SerializeObject(m, Formatting.Indented); Console.WriteLine(json); } } }
3.运行结果,注意:属性ReleaseYear未被重命名。
二、JSON使用JsonPropertyAttribute序列化升序排序属性
1.先创建一个Movie对象,然后指定JsonProperty,并添加Order属性。
using System; using System.Collections.Generic; using System.Linq; using System.Text; using GongHuiNewtonsoft.Json; namespace JSONDemo { public class Movie { [JsonProperty(Order=4)] public string Name { get; set; } [JsonProperty(Order=0)] public string Director { get; set; } public int ReleaseYear { get; set; } [JsonProperty(Order=-3)] public string ChiefActor { get; set; } [JsonProperty(Order=2)] public string ChiefActress { get; set; } } }
2.实例化Movie对象,然后序列化。
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Data; using GongHuiNewtonsoft.Json; using GongHuiNewtonsoft.Json.Serialization; using GongHuiNewtonsoft.Json.Converters; namespace JSONDemo { class Program { static void Main(string[] args) { Movie m = new Movie { Name = "非诚勿扰1", Director = "冯小刚", ReleaseYear = 2008, ChiefActor="葛优", ChiefActress="舒淇" }; string json = JsonConvert.SerializeObject(m, Formatting.Indented); Console.WriteLine(json); } } }
3.运行结果。注意:未指定Order序号的属性,界定于大于负数小于正数,并按默认顺序排序。
三、JSON使用JsonPropertyAttribute反序列化属性时,Required指定属性性质
1.创建一个Movie对象,给属性添加JsonProperty,并指定其Required的性质。属性Name必须有值,DateTime可以为空.
using System; using System.Collections.Generic; using System.Linq; using System.Text; using GongHuiNewtonsoft.Json; namespace JSONDemo { public class Movie { [JsonProperty(Required=Required.Always)] public string Name { get; set; } [JsonProperty(Required = Required.AllowNull)] public DateTime? ReleaseDate { get; set; } public string Director { get; set; } } }
2.实例化Movie对象,反序列化JSON。
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Data; using GongHuiNewtonsoft.Json; using GongHuiNewtonsoft.Json.Serialization; using GongHuiNewtonsoft.Json.Converters; namespace JSONDemo { class Program { static void Main(string[] args) { string json = @"{ 'Name':'举起手来1', 'Director':'冯小宁', 'ReleaseDate':null }"; Movie m = JsonConvert.DeserializeObject<Movie>(json); Console.WriteLine(m.Name); Console.WriteLine(m.Director); Console.WriteLine(m.ReleaseDate); } } }
3.运行结果是
四、JSON使用JsonPropertyAttribute序列化引用类型集合
1.创建一个Director对象,并声明一个本身类型的属性,指定JsonProperty中的IsReference为true.
using System; using System.Collections.Generic; using System.Linq; using System.Text; using GongHuiNewtonsoft.Json; namespace JSONDemo { public class Director { public string Name { get; set; } [JsonProperty(IsReference=true)] public Director ExecuteDir { get; set; } } }
2.创建一个Movie对象,声明一个Director集合的属性,指定JsonProperty中的IsReference为true.
using System; using System.Collections.Generic; using System.Linq; using System.Text; using GongHuiNewtonsoft.Json; namespace JSONDemo { public class Movie { public string Name { get; set; } [JsonProperty(ItemIsReference=true)] public IList<Director> Directors { get; set; } } }
3.序列化对象
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Data; using GongHuiNewtonsoft.Json; using GongHuiNewtonsoft.Json.Serialization; using GongHuiNewtonsoft.Json.Converters; namespace JSONDemo { class Program { static void Main(string[] args) { Director dir = new Director { Name = "冯小刚" }; Director dir1 = new Director { Name = "张艺谋", ExecuteDir = dir }; Movie m = new Movie { Name = "满城尽带黄金甲", Directors = new List<Director> { dir, dir1 } }; string json = JsonConvert.SerializeObject(m, Formatting.Indented); Console.WriteLine(json); } } }
4.运行结果
五、JSON使用JsonPropertyAttribute序列化忽略属性null
1.创建一个Movie对象,并在属性上指定JsonProperty,添加NullValueHandling,忽略null
using System; using System.Collections.Generic; using System.Linq; using System.Text; using GongHuiNewtonsoft.Json; namespace JSONDemo { public class Movie { public string Name { get; set; } public string Director { get; set; } [JsonProperty(NullValueHandling=NullValueHandling.Ignore)] public DateTime? LaunchDate { get; set; } } }
2.实例化对象Movie对象,然后序列化
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Data; using GongHuiNewtonsoft.Json; using GongHuiNewtonsoft.Json.Serialization; using GongHuiNewtonsoft.Json.Converters; namespace JSONDemo { class Program { static void Main(string[] args) { Movie m = new Movie { Name = "爱情呼叫转移", Director = "张建亚" }; string json = JsonConvert.SerializeObject(m, Formatting.Indented); Console.WriteLine(json); } } }
3.运行的结果
JSON源代码下载地址:http://download.csdn.net/detail/lovegonghui/9342751
相关文章推荐
- JavaScript 概述
- Json转换
- Json转换
- lazyload.js学习摘记
- doT.js 模板引擎学习摘记
- JSTL标签 封装jqGrid表格插件
- JS-Demo2:JavaScript版TableGrid,表格头、分页表格冻结,表格头可拉动
- JS-Demo1:JavaScript实现表格列拖动
- JavaScript解析过程你真的清楚吗??
- js----Number对象
- JS Map 和 List 的简单实现代码
- 10012---JavaScript--类型转换
- js----显示当前系统时间
- [学习]JavaScript设计模式——Revealing Module(揭示模块)模式
- 10011---JavaScript--typeof,null,undefined
- JSP实现屏蔽浏览器缓存的方法
- JavaScript匿名函数之模仿块级作用域
- javascript性能优化之事件委托实例详解
- JavaScript文档碎片操作实例分析
- javascript性能优化之DOM交互操作实例分析