.NET?6新特性試用之System.Text.Json功能改進
前言:
??System.Text.Json??
作為.NET默認的JSON
序列化和反序列化類庫,讓我們看看,在.NET 6中有哪些功能上的改進?
Demo
?1.屬性排序?
在屬性上聲明??JsonPropertyOrderAttribute??
來控制屬性序列化的順序,而以前,順序是由反射順序決定的,是不確定的。
示例代碼如下:
public class User { ? ? public int Age { get; set; } ? ? [JsonPropertyOrder(1)] ? ? public string Name { get; set; } ? ? ? [JsonPropertyOrder(-1)] ? ? public int Id { get; set; } }
排序值較小的數(shù)字首先被序列化;沒有聲明屬性的默認排序值為0:
{ ? "Id": 1, ? "Age": 20, ? "Name": "My IO" }
?2.序列化通知?
??System.Text.Json??新增了4個接口:
- IJsonOnDeserialized
- IJsonOnDeserializing
- IJsonOnSerialized
- IJsonOnSerializing
從名字上也可以看出它們的作用,即在序列化/反序列化前后被調(diào)用。
示例代碼如下:
public class User : ?IJsonOnSerialized, IJsonOnDeserialized { ? ? public void OnDeserialized() => this.Validate(); // 反序列化后調(diào)用 ? ? public void OnSerializing() => this.Validate(); // 序列化前調(diào)用 ? ? private void Validate() ? ? { ? ? ? ? if (this.Age <= 0) ? ? ? ? ? ? throw new ArgumentException(); ? ? } }
結(jié)論:
- ?“屬性排序”功能有點雞肋,目前還沒碰到過需要指定排序的應用場景。?
- ?“序列化通知”功能對于設(shè)置默認值和驗證屬性值合法性非常有用。?
到此這篇關(guān)于.NET 6新特性試用之System.Text.Json功能改進的文章就介紹到這了,更多相關(guān) System.Text.Json功能改進內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
.NET的基元類型包括什么及Unmanaged和Blittable類型詳解
這篇文章主要介紹了.NET的基元類型包括什么及Unmanaged和Blittable類型詳解,Unmanaged類型可以理解不涉及托管對象引用的值類型,本文通過實例代碼給大家介紹的非常詳細,需要的朋友可以參考下2023-06-06.NET 6實現(xiàn)基于JWT的Identity功能方法詳解
在.NET Web API開發(fā)中還有一個很重要的需求是關(guān)于身份認證和授權(quán)的。本文將介紹使用.NET框架自帶的認證和授權(quán)中間件去實現(xiàn)基于JWT的身份認證和授權(quán)功能的方法詳解,需要的可以參考一下2022-01-01ASP.NET MVC5網(wǎng)站開發(fā)修改及刪除文章(十)
這篇文章主要為大家詳細介紹了ASP.NET MVC5網(wǎng)站開發(fā)修改及刪除文章,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2015-09-09.Net Core自動化部署之利用docker版jenkins部署dotnetcore應用的方法
這篇文章主要給大家介紹了關(guān)于.Net Core自動化部署之利用docker版jenkins部署dotnetcore應用的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2018-06-06如何使用ASP.NET創(chuàng)建網(wǎng)站并設(shè)計web頁面
這篇文章主要介紹了如何使用ASP.NET創(chuàng)建網(wǎng)站,幫助大家更好的理解和學習使用ASP.NET技術(shù),感興趣的朋友可以了解下2021-04-04win8/8.1系統(tǒng)安裝.net framework 3.5出現(xiàn)0x800F0906代碼錯誤的解決方法
這篇文章主要為大家詳細介紹了win8/8.1系統(tǒng)安裝.net framework 3.5出現(xiàn)0x800F0906代碼錯誤的解決方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-01-01ASP.NET?MVC5網(wǎng)站開發(fā)用戶注冊(四)
上一次把基本框架搭建起來了,這次開始整Web部分,終于可以看到界面了小激動一下,web項目部分從用戶功能開始,基本有注冊,登錄、注銷、查找、查看、刪除等涉及Member區(qū)域和Manage區(qū)域,供大家參考,具體內(nèi)容如下2015-09-09ASP.NET MVC5驗證系列之Remote Validation
這篇文章主要為大家詳細介紹了ASP.NET MVC5驗證系列之Remote Validation,感興趣的小伙伴們可以參考一下2016-07-07