首页 > 后端开发 > C++ > 如何反序列化嵌套 JSON 对象以提取职位代码列表?

如何反序列化嵌套 JSON 对象以提取职位代码列表?

DDD
发布: 2025-01-19 22:11:17
原创
516 人浏览过

How Can I Deserialize Nested JSON Objects to Extract a List of Job Codes?

处理嵌套JSON对象的反序列化

代码中,您在反序列化包含嵌套对象的JSON数据时遇到问题。本指南将解决此问题,并提供从提供的JSON中获取职位代码列表的解决方案。

类结构不一致

最初,您尝试将整个JSON响应反序列化为单个JobCode类,忽略了“jobcodes”键下存在多个职位代码。为了解决这个问题,我们需要创建与JSON结构相匹配的类。

使用字典处理可变键

JSON中的“jobcodes”属性的键是字符串值(在您的示例中为“1”和“2”)。为了适应这种可变性,我们使用Dictionary<string, JobCode>而不是简单的List<JobCode>。此字典允许我们使用各自的键来检索职位代码。

更新后的类结构

以下是与JSON对齐的修改后的类结构:

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

public class Results
{
    [JsonProperty("jobcodes")]
    public Dictionary<string, JobCode> JobCodes { get; set; }
}

public 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:

<code class="language-csharp">RootObject obj = JsonConvert.DeserializeObject<RootObject>(json);</code>
登录后复制

这将使用反序列化的JSON数据填充obj变量,允许您通过obj.Results.JobCodes访问职位代码列表。

以上是如何反序列化嵌套 JSON 对象以提取职位代码列表?的详细内容。更多信息请关注PHP中文网其他相关文章!

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