Пример #1
0
        public void WriteJsonException()
        {
            StringBuilder sb = new StringBuilder();
            StringWriter  sw = new StringWriter(sb);

            using (JsonWriter writer = new JsonTextWriter(sw))
            {
                DateTimeJsonConverter converter = new DateTimeJsonConverter();
                converter.WriteJson(writer, "", null);
            }
        }
Пример #2
0
        public void WriteJson()
        {
            StringBuilder sb = new StringBuilder();
            StringWriter  sw = new StringWriter(sb);

            using (JsonWriter writer = new JsonTextWriter(sw))
            {
                DateTimeJsonConverter converter = new DateTimeJsonConverter();
                converter.WriteJson(writer, DateTime.Today, null);
                Assert.IsNotNull(converter);
            }
        }
Пример #3
0
        public void CanConvert()
        {
            string     date   = "\"20/10/2017\"";
            JsonReader reader = new JsonTextReader(new StringReader(date));

            while (reader.Read())
            {
                if (date.Substring(1, date.Length - 2).Equals(reader.Value))
                {
                    DateTimeJsonConverter converter = new DateTimeJsonConverter();
                    Assert.IsTrue(converter.CanConvert(date.GetType()));
                }
            }
        }
Пример #4
0
    public static string Serialize(object obj, CultureInfo culture = null)
    {
        if (obj == null)
        {
            return(null);
        }

        var jsonSerializerSettings = new JsonSerializerSettings {
            Culture = culture ?? CultureInfo.CurrentUICulture
        };
        var result =
            JsonConvert.SerializeObject(obj, jsonSerializerSettings.Formatting, DateTimeJsonConverter.Get());

        if (obj is DateTime)
        {
            result = string.Format("new Date('{0}')", obj);
        }
        return(result);
    }
Пример #5
0
        public void ReadJson()
        {
            string     date   = "\"20/10/2017\"";
            JsonReader reader = new JsonTextReader(new StringReader(date));

            while (reader.Read())
            {
                if (date.Substring(1, date.Length - 2).Equals(reader.Value))
                {
                    JsonSerializer serializer = new JsonSerializer();

                    DateTimeJsonConverter converter = new DateTimeJsonConverter();

                    object result = converter.ReadJson(reader, typeof(DateTime), new DateTime(2017, 10, 20), serializer);

                    Assert.IsNotNull(result);
                    Assert.IsInstanceOfType(result, typeof(DateTime));
                }
            }
        }
Пример #6
0
        public override void ExecuteResult(ControllerContext context)
        {
            if (context == null)
            {
                throw new ArgumentNullException("context");
            }
            //  if (int.Parse(base.JsonRequestBehavior.ToString())  == 1 && string.Equals(context.HttpContext.Request.HttpMethod, "GET", StringComparison.OrdinalIgnoreCase))
            if (base.JsonRequestBehavior == JsonRequestBehavior.DenyGet && string.Equals(context.HttpContext.Request.HttpMethod, "GET", StringComparison.OrdinalIgnoreCase))
            {
                throw new InvalidOperationException("当前请求不允许Get方法");
            }
            HttpResponseBase response = context.HttpContext.Response;

            if (!string.IsNullOrEmpty(base.ContentType))
            {
                response.ContentType = base.ContentType;
            }
            else
            {
                response.ContentType = "application/json";
            }
            if (base.ContentEncoding != null)
            {
                response.ContentEncoding = base.ContentEncoding;
            }
            if (base.Data != null)
            {
                DecimalJsonConverter       decimalConverter       = new DecimalJsonConverter(this._decimalPlaces);
                DoubleJsonConverter        doubleConverter        = new DoubleJsonConverter(this._decimalPlaces);
                DateTimeJsonConverter      dateTimeConverter      = new DateTimeJsonConverter(this._dateFmt);
                MySqlDateTimeJsonConverter mySqlDateTimeConverter = new MySqlDateTimeJsonConverter(this._dateFmt);
                string json = JsonConvert.SerializeObject(base.Data, new JsonConverter[]
                {
                    dateTimeConverter,
                    mySqlDateTimeConverter,
                    decimalConverter,
                    doubleConverter
                });
                response.Write(json);
            }
        }