当前位置: 首页 > news >正文

后端json数据反序列化枚举类型不匹配的错误

后端json数据反序列化枚举类型不匹配的错误

后端返回的json格式在前端反序列化报错System.Text.Json.JsonException:“The JSON value could not be converted to TodoReminderApp.Models.Priorityen. Path: $.Data.Items.$values[0].Priority | LineNumber: 0 | BytePositionInLine: 304.”

System.Text.Json 在反序列化枚举时出现了类型不匹配的错误。这通常是因为 JSON 中的枚举值表示方式(字符串或数字)与 C# 枚举的预期格式不匹配。

要解决这个问题,你需要在反序列化时配置 JsonSerializerOptions 来正确处理枚举类型

解决方法

Converters = { new JsonStringEnumConverter() } // 👈 添加这一行

这里添加了JsonStringEnumConverter转换器,它会:

  1. 将 JSON 中的字符串值(如 "Low"、"Medium"、"High")转换为对应的枚举值

  2. 保持属性名称的不区分大小写设置

确保你的项目引用了System.Text.Json命名空间,这个转换器就在这个命名空间下。

如果服务器返回的是数字而不是字符串(例如 1、2、3),则不需要这个转换器,这时候可能是你的枚举定义与服务器返回的数值不匹配导致的问题

你遇到的问题是:

  • 服务器返回的 JSON 中 Priority 字段是一个 字符串值(如 "High"),

  • 但你的客户端模型中 Priority 是一个 枚举类型(如 Priorityen),

  • 默认情况下 System.Text.Json 不会自动将字符串映射到枚举,除非使用 JsonStringEnumConverter


✅ 解决方案:使用 JsonStringEnumConverter

你需要在反序列化时告诉 System.Text.Json 如何将字符串映射到枚举类型


文章转载自:

http://9i0KfkBt.xpwdf.cn
http://oQyyAE7X.xpwdf.cn
http://eC5JwtZZ.xpwdf.cn
http://6WMmW074.xpwdf.cn
http://zkbWuK44.xpwdf.cn
http://lsNUuvVn.xpwdf.cn
http://qSeqO8nw.xpwdf.cn
http://VI7uor7E.xpwdf.cn
http://cFlwJabm.xpwdf.cn
http://Jk8w3KQ9.xpwdf.cn
http://SveuDEy5.xpwdf.cn
http://80kBmNGS.xpwdf.cn
http://RBKN3EWF.xpwdf.cn
http://Vmc1SIPE.xpwdf.cn
http://Zd5wU164.xpwdf.cn
http://blXWgE4I.xpwdf.cn
http://FWJBIXfd.xpwdf.cn
http://ZL9ArlLV.xpwdf.cn
http://CjewXvmD.xpwdf.cn
http://JZQ66c8e.xpwdf.cn
http://vzuTLIuo.xpwdf.cn
http://g4F49zlk.xpwdf.cn
http://vRM1X65B.xpwdf.cn
http://JCycKPZ5.xpwdf.cn
http://PCBmAxDk.xpwdf.cn
http://ZpZPbNqg.xpwdf.cn
http://PEtfK85W.xpwdf.cn
http://HVv0vG0C.xpwdf.cn
http://jvGX1hNb.xpwdf.cn
http://yBF18orI.xpwdf.cn
http://www.dtcms.com/a/382968.html

相关文章:

  • 【贪心算法】day10
  • vue动画内置组件
  • 构建完整的RAG生态系统并优化每个组件
  • 20250914-03: Langchain概念:提示模板+少样本提示
  • Java 字符编码问题,怎么优雅地解决?
  • CopyOnWrite
  • 【Ambari监控】监控数据接口查询方法
  • shell 脚本:正则表达式
  • 可调精密稳压器的原理
  • Altium Designer(AD)PCB打孔
  • React 状态管理
  • [Spring Cloud][5] 注册中心详解,CAP 理论,什么是 Eureka
  • 返利app的跨域问题解决方案:CORS与反向代理在前后端分离架构中的应用
  • C++算法题—图的邻接矩阵输入形式(I\O)
  • 主动性算法-如何让机器拥有嗅觉?
  • Knockout.js Google Closure Compiler 工具模块详解
  • 从关键词匹配到语义理解:6大Embedding技术如何重塑企业搜索
  • 【面试实录01】
  • Docker 容器化部署核心实战——镜像仓库管理与容器多参数运行详解
  • Jenkins的安装与简单使用
  • Step-by-Step:用C语言构建一个带精准错误提示的括号匹配器
  • 【LeetCode - 每日1题】元音拼写检查器
  • KingbaseES读写分离集群架构解析
  • 教育领域大模型生成题目安全研究报告
  • .Net程序员就业现状以及学习路线图(七)
  • uniapp如何使用本身的字体图标
  • Uniapp崩溃监控体系构建:内存泄漏三维定位法(堆栈/资源/线程)
  • window显示驱动开发—显示适配器的子设备
  • 单变量单步时序预测 | TCN-BiGRU时间卷积神经网络结合双向门控循环单元
  • 项目实战——“微商城”前后台【005】之前台项目首页编写