美文网首页
Json 使用JsonProperty Attribute

Json 使用JsonProperty Attribute

作者: 佛系码农 | 来源:发表于2018-09-20 11:33 被阅读0次

    一、JSON使用JsonPropertyAttribute重命名属性名

    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; }  
    }  
    

    }

    二、JSON使用JsonPropertyAttribute序列化升序排序属性

    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; }  
    } 
    

    三、JSON使用JsonPropertyAttribute反序列化属性时,Required指定属性性质

    .创建一个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; }  
    }  
    

    }

    四、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);  
        }  
    }  
    

    }

    五、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);  
        }  
    }  
    

    }

    相关文章

      网友评论

          本文标题:Json 使用JsonProperty Attribute

          本文链接:https://www.haomeiwen.com/subject/spvgnftx.html