• 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
  • 相关阅读:
    intersect参数
    创建图层只是保存lyr,此路不通
    点在线上
    GPS点和底图叠加
    Ifeature.set_value(index,value)怎么没结果,请高手指点
    GP的输入参数
    关于调用ArcGIS中GP工具.Erase、SymDiff
    ArcEngine 导出图层(shp)
    转载 高效实用的异或操作
    判断一个整数是否是奇数的小解
  • 原文地址:https://www.cnblogs.com/ITGirl00/p/3527733.html
Copyright © 2020-2023  润新知