处理嵌套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中文网其他相关文章!