在尝试从 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中文网其他相关文章!