现在很多的项目都在使用MVC-EF,前段使用vue angularjs 等框架,在使用的过程中,大家可能都出现过一个问题,就是后端返回的JSON数据,关于DateTime字段JSON成了"/Date(20130450000365)"这种形式,这样对于页面呈现使用带来了很大的麻烦,聪明点的同学可能会拿去拆分字符串,取出中间的时间戳进行转换,然后又实用js进行格式化.....

  从上面的步骤来看,这个过程并不简单,甚至繁琐。依我个人的说法就是:是不好用,麻烦,不能普罗大众。哪有没有好的办法呢?下面我就为大家介绍下其他办法

  1.自己封装一个方法,自己设置其中的时间转换规则,下面是代码

public static class JsonHelper
    {
        private static JsonSerializerSettings _jsonSettings;

        #region init
        static JsonHelper()
        {
            IsoDateTimeConverter datetimeConverter = new IsoDateTimeConverter();
            datetimeConverter.DateTimeFormat = "yyyy-MM-dd HH:mm:ss";
            _jsonSettings = new JsonSerializerSettings();
            _jsonSettings.MissingMemberHandling = MissingMemberHandling.Ignore;
            _jsonSettings.NullValueHandling = NullValueHandling.Ignore;
            _jsonSettings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore;
            _jsonSettings.Converters.Add(datetimeConverter);
        } 
        #endregion

        #region 将指定的对象序列化成 JSON 数据。
        /// <summary>
        /// 将指定的对象序列化成 JSON 数据。
        /// </summary>
        /// <param name="obj">要序列化的对象。</param>
        /// <returns></returns>
        public static string ToJson(this object obj)
        {
            try
            {
                if (null == obj)
                    return null;
                return JsonConvert.SerializeObject(obj, Formatting.None, _jsonSettings);
            }
            catch (Exception ex)
            {
                throw new Exception("Json序列化出错:" + ex.Message);
            }
        } 
        #endregion

        #region  将指定的 JSON 数据反序列化成指定对象。
        /// <summary>
        /// 将指定的 JSON 数据反序列化成指定对象。
        /// </summary>
        /// <typeparam name="T">对象类型。</typeparam>
        /// <param name="json">JSON 数据。</param>
        /// <returns></returns>
        public static T FromJson<T>(this string json)
        {
            try
            {
                return JsonConvert.DeserializeObject<T>(json, _jsonSettings);
            }
            catch (Exception ex)
            {
                throw new Exception("Json反序列化出错:" + ex.Message);
            }
        } 
        #endregion
    }
View Code

相关文章:

  • 2022-01-25
  • 2022-12-23
  • 2022-12-23
  • 2021-11-29
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-01-12
  • 2022-02-16
  • 2021-12-22
  • 2022-12-23
  • 2021-09-14
  • 2022-12-23
  • 2023-03-18
相关资源
相似解决方案