目录
前言:Demo1.属性排序2.序列化通知结论:前言:
System.Text.json作为.NET默认的JSON序列化和反序列化类库,让我们看看,在.NET 6中有哪些功能上的改进?
Demo
1.属性排序
在属性上声明JsonPropertyOrderAttribute来控制属性序列化的顺序,而以前,顺序是由反射顺序决定的,是不确定的。
set; } [JsonPropertyOrder(-1)] public int Id { get; set; }}
排序值较小的数字首先被序列化;没有声明属性的默认排序值为0:
{ "Id": 1, "Age": 20www.easck.com, "Name": "My IO"}2.序列化通知
System.Text.Json新增了4个接口:
IJsonOnDeserializedIJsonOnDeserializingIJsonOnSerializedIJsonOnSerializing从名字上也可以看出它们的作用,即在序列化/反序列化前后被调用。
示例代码如下:
public class User : IJsonOnSerialized, IJsonOnDeserialized{ public void OnDeserialized() => this.Validate(); // 反序列化后调用 public void OnSerializing() => this.Validate(); // 序列化前调用 private void Validate() { if (this.Age <= 0) throw new ArgumentException(); }}







