WebEnh

.net7 mvc jquery bootstrap json 学习中 第一次学PHP,正在研究中。自学进行时... ... 我的博客 https://enhweb.github.io/ 不错的皮肤:darkgreentrip,iMetro_HD
  首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

直接上解决方法的代码

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

    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; }
    }

 

希望能帮到您解决问题。