首页 >后端开发 >C++ >如何将带有动态键的嵌套 JSON 反序列化为 C# 类?

如何将带有动态键的嵌套 JSON 反序列化为 C# 类?

Barbara Streisand
Barbara Streisand原创
2025-01-19 21:51:11389浏览

How to Deserialize Nested JSON with Dynamic Keys into C# Classes?

将嵌套JSON反序列化到C#类

将JSON响应反序列化为C#类,关键在于使类结构与整个JSON数据相匹配。以下是如何反序列化给定JSON的解决方案:

JSON结构:

<code>{
    "results": {
        "jobcodes": {
            "1": { ... },
            "2": { ... },
            ...
        }
    }
}</code>

问题:

您没有考虑嵌套“jobcodes”对象中动态键(“1”和“2”)。

解决方案:

要处理动态键的对象,请使用Dictionary<string, JobCode>

<code class="language-csharp">class Results
{
    [JsonProperty("jobcodes")]
    public Dictionary<string, JobCode> JobCodes { get; set; }
}</code>

完整的类结构:

<code class="language-csharp">class RootObject
{
    [JsonProperty("results")]
    public Results Results { get; set; }
}

class JobCode
{
    [JsonProperty("_status_code")]
    public string StatusCode { get; set; }
    [JsonProperty("_status_message")]
    public string StatusMessage { get; set; }
    [JsonProperty("id")]
    public string Id { get; set; }
    [JsonProperty("name")]
    public string Name { get; set; }
}</code>

反序列化:

将JSON反序列化到RootObject类:

<code class="language-csharp">RootObject obj = JsonConvert.DeserializeObject<RootObject>(jsonResponse);</code>

结果:

您可以通过访问obj.Results.JobCodes.Values来获取List<JobCode>。每个JobCode都将具有来自JSON的相应属性值。

以上是如何将带有动态键的嵌套 JSON 反序列化为 C# 类?的详细内容。更多信息请关注PHP中文网其他相关文章!

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