JSON 轉 C#
為 System.Text.Json 或 Newtonsoft.Json 產生 C# class 或 record
貼上 JSON 或載入範例,即可產生 C# 程式碼。
JSON 轉 C# 會產生什麼
JSON 轉 C# 會將 API 回應或任何 JSON 範例轉成單一檔案中、使用檔案範圍命名空間的 C# 型別。Class 模式產生 { get; set; } 屬性;Record 模式產生位置型 record,並以 [property: ...] 將屬性標記放在產生的屬性上。System.Text.Json 使用 [JsonPropertyName("key")],Newtonsoft.Json 使用 [JsonProperty("key")]。屬性永遠不會與其所屬型別同名,因為 C# 不允許。
使用方式
- 1.貼上 JSON、上傳或拖放 .json 檔案,或載入其中一個範例。
- 2.設定根型別名稱與選填的命名空間,例如 Company.Project.Models。
- 3.選擇型別樣式、屬性命名方式與可為 null 的參考型別。
- 4.選擇序列化器與屬性標記策略,然後複製程式碼或下載 <Root>.cs。
型別如何推斷
- •會檢查陣列中的每個元素,而不只是第一個,同一陣列中的物件會合併。
- •部分物件缺少的鍵為選用;有時為 null 的鍵為可為 null。兩者分開處理。
- •同一位置出現 1 與 2.5 時會放寬為小數;其他混合情況會回報。
- •空陣列與一律為 null 的值沒有型別依據,因此使用泛用型別,並以提示說明原因。
- •型別對應:string → string、integer 依範圍對應 int、long、ulong 或 decimal、decimal → double、boolean → bool、array → List<T>、object → class 或 record、缺少或 null → T?、unknown 或混合 → object。
- •required 成員需要 C# 11 / .NET 7 以上;System.Text.Json 會拒絕缺少必要鍵的 JSON。
限制與隱私
範例只代表資料某一次的樣貌,並非完整的 API 合約。依賴程式碼前,請檢查選用欄位、泛用型別與數字寬度。輸入上限為 5 MB 與 256 層巢狀;從 2 MB 起,需按下「產生」按鈕才會產生。所有處理都在瀏覽器中執行,JSON 不會上傳。使用 System.Text.Json 時,object 屬性在反序列化後會是 JsonElement。
