Rumah >pembangunan bahagian belakang >C++ >Bagaimana Mudah Menukar Respons JSON Kompleks ke C# DTO?

Bagaimana Mudah Menukar Respons JSON Kompleks ke C# DTO?

Patricia Arquette
Patricia Arquetteasal
2025-01-12 12:41:44541semak imbas

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

Tukar respons JSON kompleks kepada DTO dalam C# Asp.Net

Soalan asal:

Apabila menggunakan RestSharp untuk menerima respons JSON yang kompleks, ekstrak senarai DTO tanpa penghuraian manual.

Penyelesaian:

Manfaatkan ciri "Tampal Khas" Visual Studio untuk menjana kelas C# secara automatik daripada JSON:

  1. Salin respons JSON.
  2. Dalam Visual Studio, navigasi ke Edit >Tampal Khas >Tampal JSON Sebagai Kelas.
  3. Visual Studio akan menjana satu siri kelas yang mewakili struktur JSON, termasuk:
<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>

Ini membolehkan anda mengakses data dalam respons JSON melalui sifat DTO yang dijana, contohnya:

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

Atas ialah kandungan terperinci Bagaimana Mudah Menukar Respons JSON Kompleks ke C# DTO?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn