首页 >后端开发 >C++ >如何轻松地将复杂的 JSON 响应转换为 C# DTO?

如何轻松地将复杂的 JSON 响应转换为 C# DTO?

Patricia Arquette
Patricia Arquette原创
2025-01-12 12:41:44541浏览

How to Easily Convert Complex JSON Responses into C# DTOs?

在 C# Asp.Net 中将复杂的 JSON 响应转换为 DTO

原始问题:

使用 RestSharp 接收复杂的 JSON 响应时,无需手动解析即可提取 DTO 列表。

解决方案:

利用 Visual Studio 的“粘贴特殊”功能,自动从 JSON 生成 C# 类:

  1. 复制 JSON 响应。
  2. 在 Visual Studio 中,导航到“编辑”>“粘贴特殊”>“将 JSON 粘贴为类”。
  3. Visual Studio 将生成一系列表示 JSON 结构的类,包括:
<code class="language-csharp">public class Rootobject
{
    public Response response { get; set; }
}

public class Response
{
    public Result result { get; set; }
    public string uri { get; set; }
}

public class Result
{
    public Leads Leads { get; set; }
}

public class Leads
{
    public Row[] row { get; set; }
}

public class Row
{
    public string no { get; set; }
    public FL[] FL { get; set; }
}

public class FL
{
    public string val { get; set; }
    public string content { get; set; }
}</code>

这允许您通过生成的 DTO 属性访问 JSON 响应中的数据,例如:

<code class="language-csharp">// 假设 response 是 RestSharp 响应对象
var json = response.Content;

// 将 JSON 反序列化到 Rootobject 类
Rootobject rootObject = JsonConvert.DeserializeObject<Rootobject>(json);

// 访问 Leads 属性
var leads = rootObject.response.result.Leads;

// 访问各个 Lead 记录
foreach (var leadRow in leads.row)
{
    var leadId = leadRow.FL[0].content;
    var company = leadRow.FL[1].content;

    // 从检索到的数据创建 LeadDto 对象
    var leadDto = new LeadDto { LeadId = leadId, Company = company };
}</code>

以上是如何轻松地将复杂的 JSON 响应转换为 C# DTO?的详细内容。更多信息请关注PHP中文网其他相关文章!

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