[NET Core] 3.1版本 Json 正反序列化与过去版本的差异

[NET Core] 3.1版本 Json 正反序列化与过去版本的差异


前言

写这篇文章为NET Core 3.1发布约半年后(2020-06)的统整,今日发布于此故作为纪录与供其他同好参考
今年将发布的.NET 6若有在这块议题异动,再新增新的区块做差异比较

1.物件属性的Attribute改变

在NET Core 2.1 的物件Json转换是透过 Newtonsoft.Json 进行物件的正反序列化动作

using Newtonsoft.Json;    public class Student    {        [JsonProperty("studentName")]        public string Name { get; set; }        [JsonProperty("studentAge")]        public int Age { get; set; }    }

但是在 NET Core 3.1 正式发布版本 已经非支援 Newtonsoft.Json 而是微软自己开发内建的 Text.Json.Serialization

using System.Text.Json.Serialization;    public class Student    {        [JsonPropertyName("studentName")]        public string Name { get; set; }        [JsonPropertyName("studentAge")]        public int Age { get; set; }    }

其中在model 物件或属性的Json格式部分已经从 JsonProperty() 调整成 JsonPropertyName()

2.序列化与反序列化的改变

在 NET Core 2.1 是物件与字串的正反序列化方式():

using Newtonsoft.Json;string resultStr = JsonConvert.SerializeObject(student);Student student = JsonConvert.DeserializeObject<Student>(resultStr);

在 NET Core 3.1 的改变是:

using System.Text.Json.Serialization;string resultStr = JsonSerializer.Serialize(student);Student student = JsonSerializer.Deserialize<Student>(resultStr);
tags: netcore modelvalidate WebAPI Json

关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章