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.hqwc.cn/news/410469.html

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

相关文章

反向代理的本质是什么?

反向代理是一种网络架构模式,通常用于提供静态内容、处理安全、负载均衡和缓存等任务。在这种架构中,客户端发送的请求首先到达反向代理服务器,然后由反向代理服务器将请求转发给后端的实际服务器。反向代理服务器可以处理和修改请求和响应&a…

软件开发架构

【 一 】软件开发架构图 【 1】ATM和选课系统 三层的开发架构 前段展示台 后端逻辑层 数据处理层 【二】软件开发架构的步骤流程 需求分析:在软件开发架构设计之前,需要对应用系统进行需求分析,明确用户需求、功能模块、业务流程等内容。…

【JavaEEj进阶】 Spring实现留言板

文章目录 🎍预期结果🍀前端代码🎄约定前后端交互接⼝🚩需求分析🚩接⼝定义 🌳实现服务器端代码🚩lombok 🌲服务器代码实现🌴运⾏测试 🎍预期结果 可以发布并…

Android PendingIntent 闪退

先来给大家推荐一个我日常会使用到的图片高清处理在线工具,主要是免费,直接白嫖 。 有时候我看到一张图片感觉很不错,但是图片清晰度不合我意,就想有没有什么工具可以处理让其更清晰, 网上随便搜下就能找到&#xff…

HTML 列表 iframe

文章目录 列表无序列表有序列表自定义列表 iframe 引入外部页面 列表 列表 是 装载 结构 , 样式 一致的 文字 或 图表 的容器 ; 列表 由于其 整齐 , 整洁 , 有序 的特征 , 类似于表格 , 但是其 组合的自由程度高于表格 , 经常用来进行布局 ; HTML 列表包括如下类型 : 无序列…

php反序列化漏洞基础

一、序列化 serialize(): 序列化是将对象或类转换为字符串的过程,以便在程序运行过程中对其进行持久化存储或传输的操作。在PHP中,序列化主要用于将类对象或数组转换成字节流的形式,以便于存储在磁盘或传输到其他系统。 通过序列化,可以将对象或类转换成一串字符串,然后可…

利用c 原生头文件完成JPEG全流程编码

骄傲一下,经过一个多月的努力,终于完成jpeg的全套编码。经验证此程序可以把摄像头yuv信号转为JPG图片。现在的程序还不完美,只能对长和宽尺寸是16倍数的信号转码。而且转码速度太慢,一帧1280720的图片要2秒多。此程序只能对yuv420…

5 个被低估的开源项目

文章目录 1.集算器 -数据处理2. Firecamp - 邮递员替代方案3.Keploy——后端 测试4. Hanko - 密钥验证5. Zrok - Ngrok 类固醇 长话短说 本文列出了五个不太受欢迎的优秀项目,您应该尝试一下。🔥 这些工具旨在改进数据处理、API 开发、后端测试、身份验…

【前端】vue.js从入门到项目实战笔记

文章目录 第三章3.1 插值绑定({{}}, v-html)3.1.1 文本插值3.1.2 HTML插值 3.2 属性绑定 v-bind3.2.1 指令v-bind3.2.3 类名和样式绑定 【前端目录贴】 第三章 3.1 插值绑定({{}}, v-html) 文本插值中的代…

Vue Axios——前端技术栈

文章目录 基本介绍Vue是什么? MVVMVue的使用快速入门注意事项和使用细节 Vue 数据绑定机制分析数据单向渲染注意事项和细节 双向数据绑定事件绑定示例:注意事项和使用细节课后作业1课后作业2 修饰符示例 条件渲染/控制: v-if v-showv-if VS v-show课后作…

(亲测可行)关于提高IDEA运行速度的方案

1.作者IDEA软件版本和计算机内存 Ultimate 2022.1.2版IDEA,计算机内存为12GB 2.修改配置以提高IDEA运行速度的误区-调高堆内存 很多文章会教调配置的内存,但大多是让你调高堆内存,比如会让你调高-Xms -Xmx ,这两种对应的是最…

网站防御爬虫攻击有哪些方式

很多网站都深受爬虫困扰,网站在被爬虫大量抓取的的时候经常容易被爬虫把服务器资源抓崩了,有的时候,同行也会来爬取我们网站进行数据采集,影响我们站点的原创性,那么如何进行相对应的防护还是非常重要的! …