首页 > 后端开发 > C++ > 我如何将具有数字ID作为密钥的JSON对象进行重新序列化,为强键入C#对象?

我如何将具有数字ID作为密钥的JSON对象进行重新序列化,为强键入C#对象?

Susan Sarandon
发布: 2025-01-30 00:12:09
原创
597 人浏览过

How Can I Deserialize a JSON Object with Numeric IDs as Keys into a Strongly Typed C# Object?

将具有 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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板