将复杂嵌套的JSON数据反序列化到C#类
某些情况下,API可能会返回包含多层嵌套对象的JSON数据。将此类数据反序列化到C#类可能具有挑战性,尤其是在对象结构与JSON响应不完全匹配时。
问题详解
如示例所示,提供的JSON响应包含一个根级别的“results”对象,其中包含一个“jobcodes”对象,该对象包含多个键值对,表示各个职位代码。但是,最初的C#对象设计只考虑了一个JobCode实例,这导致反序列化时返回空值。
解决方案
为了成功反序列化复杂JSON数据,务必创建一个与JSON响应完全一致的类结构。在本例中:
Dictionary<string, JobCode>
的“jobcodes”属性。这反映了JSON响应中“jobcodes”对象的动态特性。反序列化代码
有了合适的类结构,反序列化就变得很简单了:
<code class="language-csharp">RootObject obj = JsonConvert.DeserializeObject<RootObject>(json);</code>
这行代码将JSON响应反序列化到“RootObject”类,使您可以访问其“Results”属性和相关的职位代码详细信息。
返回JobCodes列表
为了最终检索职位代码列表,您可以使用简单的循环从“JobCodes”字典中提取它们:
<code class="language-csharp">List<JobCode> jobCodes = new List<JobCode>(); foreach (KeyValuePair<string, JobCode> jobCode in obj.Results.JobCodes) { jobCodes.Add(jobCode.Value); }</code>
通过遵循这些步骤,您可以有效地将包含嵌套对象的复杂JSON数据反序列化到C#类,从而更轻松地访问和处理API响应。
以上是如何将复杂的嵌套 JSON 数据反序列化到 C# 类中?的详细内容。更多信息请关注PHP中文网其他相关文章!