筆記目錄

Skip to content

Visual Studio 快速將 JSON 轉換為 C# 類別

TLDR

  • Visual Studio 內建「貼上 JSON 做為類別」功能,可自動將 JSON 字串轉換為 C# Class 結構。
  • 此功能適用於快速建立基礎資料模型,但作為 DTO 使用時需額外進行型別檢查、命名對應與資料驗證。
  • 若 JSON 欄位命名與 C# 慣例不符,建議搭配 [JsonPropertyName] 屬性進行映射。

核心功能:快速轉換 JSON 為 C# 類別

什麼情況下會遇到這個問題:當開發者需要根據 API 回傳的 JSON 結構快速建立對應的 C# 資料模型(Model)或 DTO 時。

透過 Visual Studio 的「選擇性貼上」功能,可以省去手動撰寫類別屬性的時間。操作步驟如下:

  1. 複製目標 JSON 字串。
  2. 在 Visual Studio 編輯器中將游標移至目標位置。
  3. 點選選單:編輯選擇性貼上貼上 JSON 做為類別

操作步驟

執行結果範例

若輸入以下 JSON:

json
{
  "User": {
    "Id": "Wing",
    "Name": "小翼",
    "Dept": {
      "Id": "SAO",
      "Name": "艾恩葛朗特"
    }
  }
}

系統將自動產生對應的類別結構:

csharp
public class Rootobject {
    public User User { get; set; }
}

public class User {
    public string Id { get; set; }
    public string Name { get; set; }
    public Dept Dept { get; set; }
}

public class Dept {
    public string Id { get; set; }
    public string Name { get; set; }
}

DTO 開發注意事項

什麼情況下會遇到這個問題:當自動產生的類別直接用於 API 串接或資料傳輸時,若未經檢查可能導致反序列化失敗或命名不符合規範。

自動產生的類別僅為基礎結構,在實際專案應用中,請務必執行以下檢查:

  • 型別檢查:確認自動產生的屬性型別(如 string, int, bool 等)是否符合實際業務需求。
  • 命名規範:若 JSON 的 Key 名稱與 C# 屬性命名慣例不符(例如 JSON 為 snake_case),建議使用 [JsonPropertyName] 屬性進行映射,確保資料正確對應。
  • 資料驗證:自動產生的類別不包含驗證邏輯,請根據業務需求加入適當的驗證屬性或邏輯。

TIP

若需在程式碼中呈現雙大括號,請務必使用程式碼區塊包裹,例如:{ { Property } }

異動歷程

  • 2025-05-27 初版文件建立。