安裝1.0.10以及以上版本的 Wesky.Net.OpenTools 包 包內,該功能的核心代碼如下: 自定義屬性: 實體類JSON模式生成器: 使用方式:引用上面的1.0.10版本或以上的包。如果實體類有特殊需求,例如映射為其他名稱,可以用OpenJson屬性來實現。實體類對象案例如下: 上面實 ...
安裝1.0.10以及以上版本的 Wesky.Net.OpenTools 包 包內,該功能的核心代碼如下: 自定義屬性: 實體類JSON模式生成器: 使用方式:引用上面的1.0.10版本或以上的包。如果實體類有特殊需求,例如映射為其他名稱,可以用OpenJson屬性來實現。實體類對象案例如下: 上面實體類,提供了屬性小寫標記、沒有任何標記、以及一個集合屬性,用於展示可能存在的多種情況。如果需要小寫,或者映射為其他的,可以通過OpenJson屬性來標記為指定的名稱;如果存在多層或者集合,也可以自動識別嵌套關係。 使用方式,只需要一行代碼即可: 輸出結果如下所示。 應用場景:可以用於實現類似swagger的輸入參數的快速賦值操作。例如訪問webapi介面,通過解析對應參數實體,自動顯示輸入參數的Json結構,然後裡面填寫結果進行快速演示測試之類的。或者其他拓展方法等,需要大佬們感興趣的自己去玩玩。 本次演示代碼:
public class TestInfo { [OpenJson("name")] public string Name { get; set; } [OpenJson("description")] public string Description { get; set; } public int Age { get; set; } public bool IsMale { get; set; } public string School { get; set; } public List<Student> Students { get; set; } } public class Student { [OpenJson("name")] public string Name { get; set; } public string Address { get; set; } } // Program: static void Main(string[] args) { var data = OpenJsonSchemaGenerator.CreateJsonSchema(typeof(TestInfo)); Console.WriteLine(data); Console.ReadLine(); }
如果以上內容對你有幫助,歡迎點贊、轉發、在看和關註我的個人公眾號:【Dotnet Dancer】 OpenTools系列文章快捷鏈接【新版本完全相容舊版本,不需要更新任何代碼均可使用】: 1.0.8版本: 上位機和工控必備!用.NET快速搞定Modbus通信的方法 https://mp.weixin.qq.com/s/Yq6kuXzFglHfNUqrHcQO9w 1.0.7版本: 大揭秘!.Net如何在5分鐘內快速實現物聯網掃碼器通用掃碼功能? https://mp.weixin.qq.com/s/-5VuLAS6HlElgDQXRY9-BQ 1.0.6版本: .NET實現獲取NTP伺服器時間並同步(附帶Windows系統啟用NTP服務功能) https://mp.weixin.qq.com/s/vMW0vYC-D9z0Dp6HFSBqyg 1.0.5版本: C#使用P/Invoke來實現註冊表的增刪改查功能 https://mp.weixin.qq.com/s/LpsjBhDDzkwyLU_tIpF-lg 1.0.3版本: C#實現圖片轉Base64字元串,以及base64字元串在Markdown文件內複原的演示 https://mp.weixin.qq.com/s/n9VtTCIiVUbHJk7OfoCcvA 1.0.2版本: C#實現Ping遠程主機功能(支持IP和功能變數名稱) https://mp.weixin.qq.com/s/d-2HcIM1KaLo-FrrTLkwEw 1.0.1版本: 開始開源項目OpenTools的創作(第一個功能:AES加密解密) https://mp.weixin.qq.com/s/78TA-mst459AuvAHwQViqQ 【備註】包版本完全開源,並且沒有任何第三方依賴。使用.net framework 4.6+、任意其他跨平臺.net版本環境,均可直接引用。 歡迎加入QQ群: 群號:1079830632