zoukankan      html  css  js  c++  java
  • .Net Core 配置之long类型 前端精度丢失和时间格式设置

    需求:long类型的值大于9007199254740991值时,前端会失精度,由于表结构ID用的long类型,修改程序字段类型不现实,网管统一处理,将long类型大于9007199254740991值时改为sting类型

    方案:

    public class CustomContractResolver : DefaultContractResolver
        {
            /// <summary>
            /// 对长整型做处理
            /// </summary>
            /// <param name="objectType"></param>
            /// <returns></returns>
            protected override JsonConverter ResolveContractConverter(Type objectType)
            {
                if (objectType == typeof(long))
                {
                    return new JsonConverterLong();
                }
                return base.ResolveContractConverter(objectType);
            }
        }
    public class JsonConverterLong : JsonConverter
        {
    public override bool CanRead => false; /// <summary> /// 是否可以转换 /// </summary> /// <param name="objectType"></param> /// <returns></returns> public override bool CanConvert(Type objectType) { return true; } /// <summary> /// 读json /// </summary> /// <param name="reader"></param> /// <param name="objectType"></param> /// <param name="existingValue"></param> /// <param name="serializer"></param> /// <returns></returns> public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) { //此方法不会进来,因为设置的上面CanRead是false return reader.Value; } /// <summary> /// 写json /// </summary> /// <param name="writer"></param> /// <param name="value"></param> /// <param name="serializer"></param> public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) { if (value == null || Convert.ToInt64(value) < 9007199254740991) writer.WriteValue(value); else writer.WriteValue(value + ""); } }

    参考:

    https://www.cnblogs.com/yijiayi/p/10051284.html

    https://www.cnblogs.com/binbinxu/p/13061561.html

  • 相关阅读:
    Android SDK、NDK、JNI的简单介绍
    深入理解计算机系统—异常
    Jmeter3.1 使用及新增报告功能
    jmeter3.1连接数据库报错,ORA00923: 未找到要求的 FROM 关键字
    Jenkins插件、war下载地址
    jenkins自动打tag
    jenkins参数化构建过程
    Jmeter接口测试自动化(jmeter+ant+jenkins持续集成)
    既然选择开始就不会停下
    知识提升整体
  • 原文地址:https://www.cnblogs.com/liuqiyun/p/14513854.html
Copyright © 2011-2022 走看看