将具有 ID 作为名称的 JSON 对象转换为强类型 C# 对象
当将具有数字 ID 键的 JSON 对象反序列化为强类型 C# 对象时,会遇到挑战。考虑以下 JSON 响应:
<code>{ "5234592":{ "pollsAndSurveys":{ ... }, "attendance":{ ... } }, "5235291":{ "pollsAndSurveys":{ ... }, "attendance":{ ... } } }</code>
为了创建强类型对象,您已定义了表示“PollsAndSurveysStatistics”、“AttendanceStatistics”和“SessionPerformanceStats”实体的类。但是,问题在于您的 C# 对象“WebinarPerformanceStats”的顶级结构。
为了解决这个问题,请在 C# 中将根对象转换为字典:
<code class="language-csharp">var dictionary = JsonConvert.DeserializeObject<Dictionary<long, SessionPerformanceStats>>(theJsonResponse);</code>
这种方法允许 Json.NET 将 JSON 对象反序列化为字典,其中 ID 数字作为键。为了确保正确的类型处理,您可以按如下方式细化声明:
<code class="language-csharp">var dictionary = JsonConvert.DeserializeObject<Dictionary<long, SessionPerformanceStats>>(theJsonResponse);</code>
此修改确保 ID 键被解释为长整数。通过使用字典作为根对象,您可以使用 ID 键访问会话性能统计信息。
以上是我如何将具有数字ID作为密钥的JSON对象进行重新序列化,为强键入C#对象?的详细内容。更多信息请关注PHP中文网其他相关文章!