JSON 轉 C# 類別與 record 產生器

JSON 輸入

正在載入編輯器…

生成的 C#

Configuration

輸入 JSON 資料,為你的 .NET 專案產生強型別 C# 類別與 records

類別、records、DTO 與具有 nullable reference types 的屬性

如何將 JSON 轉換為 C# – 步驟指南

使用此 JSON 轉 C# 產生器,可從 JSON 範例產生 C# class 或 record,適合 ASP.NET Core 與 .NET 應用。

  1. 步驟 1 – 貼上 JSON 範例

    • 將具有代表性的 JSON 物件或陣列貼到左側編輯器。
    • 盡量包含巢狀物件、陣列與可為 null 的欄位,方便正確推斷型別。
    • 使用 匯入 從檔案、URL 或示例資料載入 JSON。
  2. 步驟 2 – 選擇 C# 產生選項

    • 設定 Class NameNamespace,與專案結構一致。
    • 如需屬性標註,可選擇 JSON 框架(System.Text.JsonNewtonsoft.Json)。
    • 啟用可為 null 的參考型別,讓可選欄位對應到 string? 等型別。
  3. 步驟 3 – 檢查產生的程式碼

    • 確認欄位命名、型別推斷,以及陣列/物件的對應方式是否符合預期。
    • 依需求調整 根型別名稱、null 處理策略與可選的框架選項。
    • 若某些欄位推斷不準確,優化 JSON 範例後重新產生。
  4. 步驟 4 – 在 .NET 中使用 DTO

    • 將輸出放入專案的 DTO/Models 目錄並參與編譯。
    • 使用所選序列化器將 JSON 反序列化為根型別。
    • 需要版本相容時,建議讓 DTO 與領域模型分離。
  5. 步驟 5 – 複製或下載

    • 將輸出複製到專案中,或下載成檔案。
    • 執行格式化/程式碼檢查工具,讓風格與專案一致。
    • 若目標語言需要序列化/解析函式庫,請在專案中加入相依套件。

快速提示

  • 在可行時優先用 record 表達不可變模型(依專案風格)。
  • JSON key 與 C# 命名不同時,使用 [JsonPropertyName]/[JsonProperty] 進行對應。
  • 盡早驗證輸入,避免部分初始化物件。
範例輸出(簡化)
// JSON 輸入
{
  "id": 123,
  "name": "Maeve Winters",
  "email": "[email protected]",
  "active": true,
  "roles": ["admin", "editor"],
  "metadata": { "plan": "pro" },
  "createdAt": "2024-03-01T10:15:00Z",
  "score": 99.5,
  "notes": null
}

// 產生的 C# DTO(簡化)
public class Metadata
{
    public string Plan { get; set; } = string.Empty;
}

public class Root
{
    public int Id { get; set; }
    public string Name { get; set; } = string.Empty;
    public string? Email { get; set; }
    public bool Active { get; set; }
    public List<string> Roles { get; set; } = new();
    public Metadata Metadata { get; set; } = new();
    public DateTime CreatedAt { get; set; }
    public double Score { get; set; }
    public object? Notes { get; set; }
}

相關 JSON 與 C# 工具

探索更多可與本 JSON 轉 C# 產生器搭配使用的 JSON 與 Schema 工具。

常見問題

此 JSON 轉 C# 產生器支援哪些 C# 特性?

產生器會建立包含屬性的 C# 類別與 C# 9+ records,支援 JSON.NET 與 System.Text.Json 屬性,並遵循具有適當命名空間的現代 .NET 命名慣例。

可以產生 C# records 與 DTO 模型而不只類別嗎?

可以!選擇「Record」作為框架可產生具有不可變屬性的現代 C# records,非常適合資料傳輸物件(DTO)、API 契約與值型別。

JSON 序列化如何與產生的 C# 型別一起運作?

產生器支援 Newtonsoft.Json 與 System.Text.Json 屬性,可使用自訂屬性名稱、null 處理與彈性設定,正確進行 JSON 序列化與反序列化。

可為 null 的參考型別與可選 JSON 欄位如何處理?

產生器會為可能為 null 的屬性加入可為 null 註記(object?),遵循現代 C# nullable reference types 慣例,讓安全對應可選 JSON 欄位更容易。

我可以在 ASP.NET Core 或 Blazor 專案中使用產生的 C# 類別嗎?

可以。JSON 轉 C# 程式碼適用於 ASP.NET Core 控制器、Minimal API、Blazor 元件,以及任何需要 JSON payload 強型別模型的 .NET 應用程式。

這個 JSON 轉 C# 產生器是免費的嗎?

是的,JSON Swiss 的 JSON 轉 C# 產生器可在瀏覽器中免費使用。你可以貼上 JSON、設定選項並產生 C# 程式碼,無需安裝工具或擴充套件。

JSON 轉 C# 類別與 record 產生器 | JSONSwiss