zoukankan      html  css  js  c++  java
  • JSON草稿

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using Newtonsoft.Json;
    using Newtonsoft.Json.Converters;
    
    namespace JSONDemo
    {
        class Program
        {
            static void Main(string[] args)
            {
            }
        }
    
    
        [JsonObject(MemberSerialization.OptIn)]
        //这个标签指定成员序列化是opt-in(要序列化的成员必须带有JsonProperty或DataMember标签)还是opt-out(默认所有的都会序列化,但通过JsonIgnoreAttribute标签可以忽略序列化。opt-out是json.net默认的)。
    
        public class Customer
        {
          
            [JsonProperty(PropertyName = "ID")]
            //允许被序列化的成员自定义名字。这个标签同时标示出:在成员序列化设置为opt-in的时候,成员会被序列化。
            public int Unid { get; set; }
    
    
    
            [JsonProperty]
    
            public string CustomerName { get; set; }
    
    
    
            [JsonProperty]
    
            [JsonConverter(typeof(IsoDateTimeConverter))]
    
            public DateTime CreateTime { get; set; }
            public string Memo { get; set; }
    
        }
    
        //JsonIgnore:忽略域或属性的序列化
    
        /*JsonConverter:用于指派转换对象的JsonSerializer。这个标签可以修饰类或类成员。用于修饰类时,
         * 通过此标签指派的JsonConverter会被设置为序列化类的默认方式。用于修饰属性或域成员时,被指派的JsonConverter会序列化它们的值。*/
    
        /*序列化日期json中的日期是困难的。这个问题来源于json细则本身,因为在json中没有日期的原义句法。这个细则包括对象,数组,字符串,整型和浮点,
         * 但它没有对日期定义相关的标准。在json.net中用于日期的默认的格式与微软:“/Date(1198908717056)/”这个一样。
         * 
         * DateTime JsonConverters:因为在json中没有关于日期的标准,在系统间的互操作过程中出现了大量不同的格式。
         * 幸运的是json.net提供了用于读写自定义日期格式的解决方案:JsonConverters。一个json转换器用于指定一种类型如何被序列化。
         * 
         * 
                             * public class LogEntry
    
                        {
    
                            public string Details { get; set; }
    
                            public DateTime LogDate { get; set; }
    
                        }
    
                        public void WriteJsonDates()
    
                        {
    
                        LogEntry entry = new LogEntry
    
                        {
    
                            LogDate = new DateTime(2009, 2, 15, 0, 0, 0, DateTimeKind.Utc),
    
                            Details = "Application started."
    
                        };
    
     
    
                        string defaultJson = JsonConvert.SerializeObject(entry);
    
                        // {"Details":"Application started.","LogDate":"/Date(1234656000000)/"}
    
                        string javascriptJson = JsonConvert.SerializeObject(entry, new JavaScriptDateTimeConverter());
    
                        // {"Details":"Application started.","LogDate":new Date(1234656000000)}
    
                        string isoJson = JsonConvert.SerializeObject(entry, new IsoDateTimeConverter());
    
                        // {"Details":"Application started.","LogDate":"2009-02-15T00:00:00Z"}
    
                        }
    
     
    
                        JavaScriptDateTimeConverter
    
                        这个来自json.net的转换器是两种日期转换器之一。它是把日期序列化为一个js日期对象。
    
                        new Date(1234656000000)
    
     
    
                        IsoDateTimeConverter
    
                        这种转换器把日期序列化为一个ISO8601格式的字符串。
    
                        "2009-02-15T00:00:00Z"
    
                        这个类有一个日期格式化属性,用于自定义其它的格式字符串。
         * 
         * 
         * 参考:http://www.cnblogs.com/jams742003/
         */
    
    
    }
    作者:Elaine
    交流QQ:392989505
  • 相关阅读:
    Python class:定义类
    Python return函数返回值详解
    Python None(空值)及用法
    Python函数值传递和引用传递(包括形式参数和实际参数的区别)
    Python函数的定义
    Python函数(函数定义、函数调用)用法详解
    Python reversed函数及用法
    Python zip函数及用法
    Python break用法详解
    Python嵌套循环实现冒泡排序
  • 原文地址:https://www.cnblogs.com/ITGirl00/p/3527733.html
Copyright © 2011-2022 走看看