C#调用Newtonsoft.Json将bool序列化为int

  使用Newtonsoft.Json将数据对象序列化为Json字符串时,如果有布尔类型的属性值时,一般会将bool类型序列化为字符串,true值序列化为true,false值序列化为false。如下面的类型序列化后的结果如下:

public class UserInfo
{public string Name { get; set; }public string Email { get; set; }public string Password { get; set; }public bool isActive { get; set; }
}UserInfo user = new UserInfo();
user.Name = "Test";
user.Email = "123456@qq.com";
user.isActive = true;Console.WriteLine(JsonConvert.SerializeObject(user));

在这里插入图片描述
  如果序列化时需要将布尔值序列化为数字,则需要借助JsonConverter特性类指定专门的转换类执行转换操作,但Newtonsoft.Json.Converters命名空间下并没有提供相应的转换类,需要继承JsonConverter或者JsonConverter类自定义转换类。
在这里插入图片描述

  本文测试时定义Bool2IntConverter并继承自类JsonConverter,后者中的主要方法及属性定义如下,由于仅测试序列化,因此在Bool2IntConverter中仅需着重处理WriteJson和CanConvert即可,主要代码如下:
在这里插入图片描述

public class Bool2IntConverter : JsonConverter
{public override void WriteJson(JsonWriter writer, object? value, JsonSerializer serializer){if (value == null){writer.WriteValue(0);return;}bool bValue=(bool)value;writer.WriteValue(bValue?1:0);}public override object? ReadJson(JsonReader reader, Type objectType, object? existingValue, JsonSerializer serializer){return null;}public override bool CanConvert(Type objectType){if (objectType == typeof(Boolean) || objectType == typeof(Boolean?)){return true;}return false;}
}

  使用Bool2IntConverter类的方式及测试结果如下所示:

 public class UserInfo{public string Name { get; set; }public string Email { get; set; }public string Password { get; set; }[JsonConverter(typeof(Bool2IntConverter))]public bool isActive { get; set; }}

在这里插入图片描述

参考文献:
[1]百度AI自动生成
[2]https://www.cnblogs.com/yanweidie/p/4605212.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/631531.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

开源图床LightPicture搭建本地图片管理系统并实现无公网IP远程访问

文章目录 1.前言2. Lightpicture网站搭建2.1. Lightpicture下载和安装2.2. Lightpicture网页测试2.3.cpolar的安装和注册 3.本地网页发布3.1.Cpolar云端设置3.2.Cpolar本地设置 4.公网访问测试5.结语 1.前言 现在的手机越来越先进,功能也越来越多,而手机…

OSI七层协议和五层协议

【 1 】互联网协议交互的基础 硬件设备 光缆 【 2 】OSI七层协议 物理层(Physical Layer):负责传输比特流(0和1)以及物理连接的建立和维护。数据链路层(Data Link Layer):提供可…

掌握Spring MVC拦截器整合技巧,实现灵活的请求处理与权限控制!

拦截器 1.1 拦截器概念1.2 拦截器入门案例1.2.1 环境准备1.2.2 拦截器开发步骤1:创建拦截器类步骤2:配置拦截器类步骤3:SpringMVC添加SpringMvcSupport包扫描步骤4:运行程序测试步骤5:修改拦截器拦截规则步骤6:简化SpringMvcSupport的编写 1.3 拦截器参数1.3.1 前置处理方法1.3…

1.4 面试经典150题 - 多数元素

多数元素 给定一个大小为 n 的数组 nums ,返回其中的多数元素。多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素。 class Solution:def majorityElement(self, nums: List[int]) -> int:# 排序nums.sort()# 取中间的数字,即为题解答案return num…

操作系统课程设计-内存管理

目录 前言 1 实验题目 2 实验目的 3 实验内容 3.1 步骤 3.2 关键代码 3.2.1 显示虚拟内存的基本信息 3.2.2 遍历当前进程的虚拟内存 4 实验结果与分析 5 代码 前言 本实验为课设内容,博客内容为部分报告内容,仅为大家提供参考,请勿直…

【计算机网络】【新加坡南洋理工大学】【Computer Control Network】【广域网和局域网简介】【中英对照(自译)】

一、说明 仅供学习使用。 二、广域网(WAN)和局域网(LAN)简介

思瑞浦与IAR携手共筑嵌入式开发新生态--AMEYA360

2024年1月18日思瑞浦与IAR联合宣布,IAR旗舰产品IAR Embedded Workbench for Arm已全面支持思瑞浦TPS32混合信号微控制器主流系列产品,为开发者提供更完整、高效的开发解决方案。 思瑞浦总部位于中国,提供模拟及嵌入式处理器产品和解决方案&am…

腊八与健康,探寻羊奶与腊八渊源的奥秘

腊八与健康,探寻羊奶与腊八渊源的奥秘 腊八这个传统节日在我国有着悠久的历史,它是在农历腊月初八举行的一个重要的节日。腊月初八,民间有吃腊八粥的习俗,这是一种由多种杂粮、豆、米、枸杞等制作而成的美味佳肴。而在腊八粥中&a…

编程笔记 html5cssjs 038 CSS背景

编程笔记 html5&css&js 038 CSS背景 一、CSS 背景属性二、CSS background-color三、不透明度 / 透明度四、使用 RGBA 的透明度五、CSS 背景图像六、CSS 背景重复CSS background-repeatCSS background-repeat: no-repeatCSS background-position 七、练习小结&#xff1…

spring boot集成loback日志配置

1.spring boot中application.properties配置 logging.configclasspath:loback-config.xml 2.配置loback-config.xml <?xml version"1.0" encoding"UTF-8"?> <!-- 日志级别从低到高分为TRACE < DEBUG < INFO < WARN < ERROR <…

django后台手机号加密存储

需求&#xff1a; 1 &#xff1a;员工在填写用户的手机号时&#xff0c;直接填写&#xff0c;在django后台中输入 2&#xff1a;当员工在后台确认要存储到数据库时&#xff0c;后台将会把手机号进行加密存储&#xff0c;当数据库被黑之后&#xff0c;手机号字段为加密字符 3&am…

AVL树 -- C++实现

AVL树 – C实现 1. AVL树的概念 二叉搜索树虽可以缩短查找的效率&#xff0c;但如果数据有序或接近有序二叉搜索树将退化为单支树&#xff0c;查找元素相当于在顺序表中搜索元素&#xff0c;效率低下。因此&#xff0c;两位俄罗斯的数学家G.M.Adelson-Velskii和E.M.Landis在1…

【软件测试】学习笔记-精准测试

软件测试行业从最开始的手工测试到自动化测试&#xff0c;从黑盒测试到白盒测试&#xff0c;测试理念和技术都发生了日新月异的变化。现如今&#xff0c;几乎所有的软件公司都有一套强大且复杂的自动化测试用例&#xff0c;用来夜以继日地保证产品的正确性和稳定性。 然而&…

selenium爬虫爬取当当网书籍信息 | 最新!

如果对selenium不了解的话可以到下面的链接中看基础内容&#xff1a; selenium爬取有道翻译-CSDN博客 废话不多说了下面是代码并且带有详细的注释&#xff1a; 爬取其他类型的书籍和下面基本上是类似的可以自行更改。 # 导入所需的库 from selenium import webdriver from …

yolov5数据增强避免目标残缺的代码处理

在训练小目标检测的时候,yolov5数据常用的增强会导致目标残缺,特别是对文字目标进行检测的时候,增强导致文字目标残缺后,训练出的模型常常会出现误检,将部分笔画检测出文字;所以就对目标中的数据增强后的结果做了合适的处理: 替换代码包括(utils/datasets.pyutils/dat…

距离场和距离变换:distance_transform

一、说明 你知道图像处理的骨架这个概念吗?如果知道,你能解释清楚什么算法生成骨架吗?从一堆横竖叠加的扑克牌中,你能整理出几张牌,并保存牌的花色信息吗?如果您对上述提问存在疑虑,那么就好好看看本文吧。 二、距离变换描述 2.1 提出距离场的概念 距离变换,也称为距…

6.3.3分离音频和视频

6.3.3分离音频和视频 Camtasia4有一个很实用的功能&#xff0c;那就是能够把视频片段中的视频和音频分离开来&#xff0c;这在多媒体作品创作中非常有用。 1&#xff0e;启动Camtasia音频编辑器。 2&#xff0e;选择【文件】|【打开】命令&#xff0c;在弹出的“打开文件”对…

【Spring Boot 3】【Redis】集成Lettuce

【Spring Boot 3】【Redis】集成Lettuce 背景介绍开发环境开发步骤及源码工程目录结构总结背景 软件开发是一门实践性科学,对大多数人来说,学习一种新技术不是一开始就去深究其原理,而是先从做出一个可工作的DEMO入手。但在我个人学习和工作经历中,每次学习新技术总是要花…

企业面临哪些能源消耗问题,能源消耗监测管理系统是如何解决这些问题?

随着全球环境问题的日益严重&#xff0c;能源问题一直被世界广泛关注。在企业运营过程中&#xff0c;能源消耗问题也是一大挑战。企业在生产和运营过程中需要大量的能源支持&#xff0c;包括电、水、气、热等多种能源。由于能源价格的不稳定性&#xff0c;使得企业在能源消耗方…

【北亚企安数据恢复】RAIDZ多块磁盘离线导致服务器崩溃的数据恢复案例

服务器数据恢复环境&#xff1a; ORACLE SUN ZFS某型号存储&#xff0c;共40块磁盘组建存储池&#xff0c;其中的36块磁盘分为三组&#xff0c;每组12块&#xff0c;单个组使用ZFS特有的RAIDZ管理所有磁盘&#xff0c;RAIDZ级别为2&#xff1b;另外的4块磁盘作为全局热备。存储…