首页 > 其他分享 >Newtonsoft.Json 全局设置 json null转换为空(包含int)

Newtonsoft.Json 全局设置 json null转换为空(包含int)

时间:2024-08-01 11:52:03浏览次数:11  
标签:jsonsetting Newtonsoft int 为空 reader null public objectType

public class CustomDateConverter : IsoDateTimeConverter
    {
        public CustomDateConverter()
        {
            DateTimeFormat = "yyyy-MM-dd HH:mm:ss"; // 设定你想要的日期时间格式
        }
    }
    public class NullToEmptyStringConverter : JsonConverter
    {
        public override bool CanConvert(Type objectType)
        {
            if (objectType.FullName == "System.DBNull")
            {
                return true;
            }
            return typeof(int).IsAssignableFrom(objectType);
            
        }

        public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
        {
            if (reader.TokenType == JsonToken.Null || reader.Value.ToString() == "null")
            {
                return "";
            }
            return reader.Value;
        }

        public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
        {
            if (value == null || value == DBNull.Value)
            {
                writer.WriteValue("");
            }
            else
            {
                writer.WriteValue(value.ToString());
            }
        }
    }
 var jsonsetting = new Newtonsoft.Json.JsonSerializerSettings()
            {
                DefaultValueHandling = Newtonsoft.Json.DefaultValueHandling.Ignore,
            };
            jsonsetting.Converters.Add(new CustomDateConverter());
            jsonsetting.Converters.Add(new NullToEmptyStringConverter());
            GlobalConfiguration.Configuration.Formatters.JsonFormatter.SerializerSettings = jsonsetting;

 

标签:jsonsetting,Newtonsoft,int,为空,reader,null,public,objectType
From: https://www.cnblogs.com/linyijia/p/18336363

相关文章

  • 【漏洞复现】用友时空KSOA PrintZPFB.jsp SQL注入漏洞
    0x01产品简介用友时空KSOA是建立在SOA理念指导下研发的新一代产品,是根据流通企业前沿的IT需求推出的统一的IT基础架构,它可以让流通企业各个时期建立的IT系统之间彼此轻松对话。0x02漏洞概述用友时空KSOA系统PrintZPFB.jsp接口处存在SQL注入漏洞,未经身份验证的......
  • 使用 pint 和 scipy.integrate.quad
    我正在尝试采用有限积分,其中所有参数和限制都具有使用品脱定义的与其关联的单位。当我尝试使用scipy.integrate.quad进行积分时,我出错了(下面的代码和错误)。难道品脱这时候就不能进行积分了吗?除了删除我的单位然后在积分后将它们添加回来之外,还有其他方法可以解决这个问题吗?de......
  • 属性错误:'numpy.int64'。这是我的对象没有属性“loc”
    我试图根据2列的if条件求和一列的值,但出现错误AttributeError:'numpy.int64'这是我的对象没有属性locdf3=df3.loc[(df3['FeatureName']=='GI-MIPSPI-FilterScorecardDataPanel-Measures(All)-PI_HIE_1:SupportElectronicReferralLoo......
  • 核心(Hutool-core)计时器工具-TimeInterval
    介绍Hutool通过封装TimeInterval实现计时器功能,即可以计算方法或过程执行的时间。TimeInterval支持分组计时,方便对比时间。使用TimeIntervaltimer=DateUtil.timer();//---------------------------------//-------这是执行过程//---------------------------------time......
  • Intent中的四个重要属性——Action、Data、Category、Extras
    Intent作为联系各Activity之间的纽带,其作用并不仅仅只限于简单的数据传递。通过其自带的属性,其实可以方便的完成很多较为复杂的操作。例如直接调用拨号功能、直接自动调用合适的程序打开不同类型的文件等等。诸如此类,都可以通过设置Intent属性来完成。Intent主要有以下四个重要......
  • 在 Tkinter 中显示多个网格时出现问题
    我正在尝试创建一个具有多个页面的TkinterGUI,每个页面显示由不同小部件组成的不同组件。我在处理来自不同对象的网格时遇到问题。fromtkinterimport*importtkinterastkclassMainWindow(tk.Tk):def__init__(self):super().__init__()Mai......
  • Ubuntu升级Jenkins导致无法启动,报错Failed to start Jenkins Continuous Integration
    背景:从23年底部署jenkins后就没升过级,安装插件顺手更新后导致无法启动,服务端运行状态显示jenkinssystemd[1]:FailedtostartJenkinsContinuousIntegrationServer.无法重新启动的状态信息root@jenkins:~#sudosystemctlstatusjenkins●jenkins.service-Jenkins......
  • 支持 ESXi 8.0 的第 14 代 Intel 酷睿处理器选购参考
    Intel最新发布的第14代酷睿处理器全面支持ESXi8.0支持ESXi8.0的第14代Intel酷睿处理器选购参考请访问原文链接:https://sysin.org/blog/intel-core-14th-gen-cpu-for-esxi/,查看最新版。原创作品,转载请保留出处。Intel最新发布的第14代酷睿处理器全面支持ESXi8......
  • Nuxt3项目配置 Eslint、Prettierrc、Husky等项目提交规范
    为什么要提高项目规范?提高代码质量:项目开发规范能确保代码的一致性和可读性,使其他程序员能够更容易地理解和维护代码。同时,规范也能减少代码中的错误和缺陷,提高软件的整体质量。加强团队协作:在团队开发项目中,不同的程序员可能采用不同的编程风格和习惯。通过遵循统一的开发规......
  • 模拟冲刺(Sprint)计划
    选择的小用户故事: 1. 小用户故事2:作为运动员,我希望系统能实时显示每一球的得分情况,以便能让我及时了解比赛局势。-任务1:前端界面设计-开发时间:1天-具体步骤:-创建网页布局,包括比分显示区域。-设计实时更新比分的界面样式。-任务2:后端数据获取与传输-开发时间......