首页 >后端开发 >C++ >我如何将用动态属性名称作为标识符作为标识符的JSON进行重新序列化?

我如何将用动态属性名称作为标识符作为标识符的JSON进行重新序列化?

Mary-Kate Olsen
Mary-Kate Olsen原创
2025-01-30 00:01:09864浏览

How Can I Deserialize JSON with Dynamic Property Names as Identifiers into a Strongly Typed C# Object?

从具有属性名称作为标识符的 JSON 创建强类型 C# 对象

问题描述

在尝试从 JSON 数据创建强类型 C# 对象时,作者遇到了处理 JSON 对象中属性名称的难题,这些属性名称是相应会话的标识符。现有代码尝试使用分层类结构反序列化 JSON 文件,但属性名称(会话标识符)未被识别为对象属性。

解决方法

为了解决此问题,作者需要修改 C# 类中的根对象为 Dictionary<string, SessionPerformanceStats>。此更改将允许 JSON 对象属性名称被映射为字典键。

代码示例

<code class="language-csharp">var dictionary = JsonConvert.DeserializeObject<Dictionary<string, SessionPerformanceStats>>(theJsonResponse);</code>

或者,如果确定 JSON 对象中的属性名称始终为数字,则可以将字典键定义为长整型:

<code class="language-csharp">var dictionary = JsonConvert.DeserializeObject<Dictionary<long, SessionPerformanceStats>>(theJsonResponse);</code>

附加说明

这些修改的目标是启用将 JSON 对象正确反序列化为字典。这种方法允许使用 JSON 对象中的属性名称作为字典键,有效地将 JSON 对象结构映射到 C# 字典。这解决了会话标识符没有被识别为对象属性的问题。

以上是我如何将用动态属性名称作为标识符作为标识符的JSON进行重新序列化?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn