Maison >développement back-end >C++ >Comment convertir facilement des réponses JSON complexes en DTO C# ?

Comment convertir facilement des réponses JSON complexes en DTO C# ?

Patricia Arquette
Patricia Arquetteoriginal
2025-01-12 12:41:44541parcourir

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

Convertir une réponse JSON complexe en DTO en C# Asp.Net

Question originale :

Lorsque vous utilisez RestSharp pour recevoir des réponses JSON complexes, extrayez une liste de DTO sans analyse manuelle.

Solution :

Exploitez la fonctionnalité « Collage spécial » de Visual Studio pour générer automatiquement des classes C# à partir de JSON :

  1. Copiez la réponse JSON.
  2. Dans Visual Studio, accédez à Édition > Coller spécial > Coller JSON en tant que classe.
  3. Visual Studio générera une série de classes qui représentent la structure JSON, notamment :
<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>

Cela vous permet d'accéder aux données de la réponse JSON via les propriétés DTO générées, par exemple :

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

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn