首页 > 后端开发 > C++ > 如何将复杂的嵌套 JSON 数据反序列化到 C# 类中?

如何将复杂的嵌套 JSON 数据反序列化到 C# 类中?

Patricia Arquette
发布: 2025-01-19 22:13:10
原创
535 人浏览过

How Can I Deserialize Complex Nested JSON Data into C# Classes?

将复杂嵌套的JSON数据反序列化到C#类

某些情况下,API可能会返回包含多层嵌套对象的JSON数据。将此类数据反序列化到C#类可能具有挑战性,尤其是在对象结构与JSON响应不完全匹配时。

问题详解

如示例所示,提供的JSON响应包含一个根级别的“results”对象,其中包含一个“jobcodes”对象,该对象包含多个键值对,表示各个职位代码。但是,最初的C#对象设计只考虑了一个JobCode实例,这导致反序列化时返回空值。

解决方案

为了成功反序列化复杂JSON数据,务必创建一个与JSON响应完全一致的类结构。在本例中:

  1. 根级别对象:需要一个“RootObject”类来表示整体JSON结构并包含一个“Results”属性。
  2. 嵌套对象:“Results”类应包含一个类型为Dictionary<string, JobCode>的“jobcodes”属性。这反映了JSON响应中“jobcodes”对象的动态特性。
  3. JobCode类:“JobCode”类保持不变,表示单个职位代码详细信息。

反序列化代码

有了合适的类结构,反序列化就变得很简单了:

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

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