首页 > 编程语言 >.net C# System.Text.Json 如何将 string类型的“true”转换为布尔值 解决方案

.net C# System.Text.Json 如何将 string类型的“true”转换为布尔值 解决方案

时间:2023-12-20 20:44:26浏览次数:34  
标签:string val C# Text public bool true options

直接上解决方法的代码

先定义一个转换顺,代码如下:

    public sealed class AnhBoolConverter : JsonConverter<bool?>
    {
        public override bool? Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
        {
            var val = JsonSerializer.Deserialize<string?>(ref reader, options);
            bool? boolVal = Convert.ToBoolean(val);
            return boolVal;
        }

        public override void Write(Utf8JsonWriter writer, bool? val, JsonSerializerOptions options)
            => // What do I do here? I want to preserve other options such as options.PropertyNamingPolicy, which are lost by the following call
            JsonSerializer.Serialize(writer, val);
    }

再到需要反序列化地实体上添加如下属性(黄色高亮区域):

    public class ResponseBase
    {
        /// <summary>
        /// 接口请求结果  true or false
        /// 示例值:"result": "true" 或 true
        /// </summary>
        [System.Text.Json.Serialization.JsonConverter(typeof(AnhBoolConverter))]
        public bool? result { set; get; }

        /// <summary>
        /// 系统返回结果描述
        /// 示例值:接口调用成功
        /// </summary>
        public string? msg { set; get; }

        /// <summary>
        /// 错误码
        /// </summary>
        public string? errCode { get; set; }
    }

 

希望能帮到您解决问题。

 

标签:string,val,C#,Text,public,bool,true,options
From: https://www.cnblogs.com/webenh/p/17917529.html

相关文章

  • Why the developed country choose the countries of southeast Asia to build proces
    ThedevelopedcountrieschoosecountriesinSoutheastAsiatobuildprocessingfactoriesandutilizetheirlaborforceforvariousreasons.Someofthekeyfactorsthatcontributetothisdecisionincludethelowcostoflabor,favorablegovernmentpolici......
  • cocoscreator使用总结
    1.背景图的大小超过父节点的大小,要使背景图不超过父节点,可以在父节点上增加一个mask组件2.layout组件可以设置垂直或水平布局,垂直时可以设从上到下或从下到上,水平布局可以设置从左向右,从右向左,可以方便用来设置文字在右下角之类的3.ScrollView的bar可以移除,view里面......
  • ABC265 复盘
    ABC265复盘At链接LG链接[ABC265A]Apple思路解析:判断一下一次性买3个便宜还是3个分开买便宜,选更便宜的方法尽量多买剩下的单独买即可。#include<bits/stdc++.h>usingnamespacestd;intn,x,y;intmain(){ cin>>x>>y>>n; if(3*x<=y){ cout<<n......
  • 【愚公系列】2023年12月 通用职责分配原则(九)-受保护变量原则(Protected Variations
    ......
  • C 语言运算符详解
    C语言中的运算符运算符用于对变量和值进行操作。在下面的示例中,我们使用+运算符将两个值相加:intmyNum=100+50;虽然+运算符通常用于将两个值相加,就像上面的示例一样,它还可以用于将变量和值相加,或者将变量和另一个变量相加:intsum1=100+50;//150(100+5......
  • openGauss学习笔记-166 openGauss 数据库运维-备份与恢复-导入数据-使用COPY FROM STD
    openGauss学习笔记-166openGauss数据库运维-备份与恢复-导入数据-使用COPYFROMSTDIN导入数据-从MY向openGauss数据库进行数据迁移166.1示例2:从MY向openGauss数据库进行数据迁移下面示例演示如何通过CopyManager从MY向openGauss数据库进行数据迁移的过程。importjava.io.St......
  • 鸿蒙开发之在mac上安装集成开发工具DevEco Studio
    在安装集成环境后,会拉取os的依赖文件(类似npm的包文件),安装完成后创建项目  目录结构:   我们所写的代码就在入口文件中编写具体文档:https://developer.huawei.com/consumer/cn/training/course/slightMooc/C101682488597649338  ......
  • c203数据库练习题下半
    2、视图练习(1)建立视图v_xs_1,要求包含男生的学号,姓名,性别,出生日期,班级编号,专业名称字段,并要求视图操作数据时进行检查。使用select命令查询创建的视图。createviewv_xs_1asselectxh,xm,xb,csrq,bjbh,zymcfromxsjbxxbwherexb='男'withcheckoption;建立一个学院教师......
  • c203数据库练习题上半
    1.使用SQL语言创建满足以下要求的数据库。(1)创建数据库名称为jwgl,字符集选择utf8,排序规则选择utf8_general_ci。createdatabasejwglcharactersetutf8collateutf8_general_ci;(2)查看数据库。showdatabases;(3)将数据库jwgl的指定字符集修改为gb2312。mysql>alterdatabasejwg......
  • Dr.COM品牌
    Dr.COM品牌创建于1995年,广州热点软件科技股份有限公司于2017年正式在新三板挂牌上市(证券简称:热点股份,证劵代码:871080),公司是集“软件、硬件、服务和运营”四位一体的国家高新技术企业,专注于宽带接入的网络安全防护领域,为客户提供下一代互联网IPv6升级以及网络安全防护运营管理方......