首頁 >後端開發 >C++ >如何輕鬆地將複雜的 JSON 回應轉換為 C# DTO?

如何輕鬆地將複雜的 JSON 回應轉換為 C# DTO?

Patricia Arquette
Patricia Arquette原創
2025-01-12 12:41:44537瀏覽

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