當前位置: 妍妍網 > 碼農

牛啊牛啊:C#/.NET一行程式碼把實體類型別轉換為Json數據字串

2024-06-06碼農

前言:剛好要做一個類似Swagger那種可以快速存取api介面和演示的功能,於是就把做的思路寫到包裏面去,給有需要的小夥伴提供學習和參考。

首先,安裝1.0.10以及以上版本的 Wesky.Net.OpenTools 包

包內,該功能的核心程式碼如下:

自訂內容:

實體類JSON模式生成器:

使用方式:參照上面的1.0.10版本或以上的包。如果實體類有特殊需求,例如對映為其他名稱,可以用OpenJson內容來實作。實體類物件案例如下:

上面實體類,提供了內容小寫標記、沒有任何標記、以及一個集合內容,用於展示可能存在的多種情況。如果需要小寫,或者對映為其他的,可以透過OpenJson內容來標記為指定的名稱;如果存在多層或者集合,也可以自動辨識巢狀關系。

使用方式,只需要一行程式碼即可:

輸出結果如下所示。

套用場景:可以用於實作類似swagger的輸入參數的快速賦值操作。例如存取webapi介面,透過解析對應參數實體,自動顯示輸入參數的Json結構,然後裏面填寫結果進行快速演示測試之類的。或者其他拓展方法等,需要大佬們感興趣的自己去玩玩。

本次演示程式碼:

public classTestInfo { [OpenJson("name")]publicstring Name { get; set; } [OpenJson("description")]publicstring Description { get; set; }publicint Age { get; set; }publicbool IsMale { get; set; }publicstring School { get; set; }public List<Student> Students { get; set; } }public classStudent { [OpenJson("name")]publicstring Name { get; set; }publicstring Address { get; set; } }// Program:staticvoidMain(string[] args){var data = OpenJsonSchemaGenerator.CreateJsonSchema(typeof(TestInfo)); Console.WriteLine(data); Console.ReadLine();}

如果以上內容對你有幫助,歡迎點贊、轉發、在看和關註我的個人公眾號: 【Dotnet Dancer】

OpenTools系列文章快捷連結【新版本完全相容舊版本,不需要更新任何程式碼均可使用】:

1.0.8版本:

上位機和工控必備!用.NET快速搞定Modbus通訊的方法

1.0.7版本:

大揭秘!.Net如何在5分鐘內快速實作物聯網掃碼器通用掃碼功能?

1.0.6版本:

.NET實作獲取NTP伺服器時間並同步(附帶Windows系統啟用NTP服務功能)

1.0.5版本:

C#使用P/Invoke來實作登錄檔的增刪改查功能

1.0.3版本:

C#實作圖片轉Base64字串,以及base64字串在Markdown檔內復原的演示

1.0.2版本:

C#實作Ping遠端主機功能(支持IP和網域名稱)

1.0.1版本:

開始開源計畫OpenTools的創作(第一個功能:AES加密解密)

【備註】 包版本完全開源,並且沒有任何第三方依賴。使用.net framework 4.6+、任意其他跨平台.net版本環境,均可直接參照。

再次感謝各位閱讀~~~