.Net Core 3.0原生Json解析器
Posted fanqisoft
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了.Net Core 3.0原生Json解析器相关的知识,希望对你有一定的参考价值。
微软官方博客中描述了为什么构造了全新的Json解析器而不是继续使用行业准则Json.Net
微软博客地址:https://devblogs.microsoft.com/dotnet/try-the-new-system-text-json-apis/
在官方的Github中,也有关于此问题的详细描述:https://github.com/dotnet/corefx/issues/33115
简单说明就是.Net Core有一个Span<T>类,它类似于数组,但它不托管于堆上,因此提供了操作内存的高性能,这将对序列化和反序列化提供更高的性能。
官方API完整介绍https://docs.microsoft.com/zh-cn/dotnet/api/system.text.json?view=netcore-3.0
同时UTF-8和UTF-16也是微软考虑的一个点。
开始详细了解一下吧:
class Program static void Main(string[] args) Console.WriteLine("Hello World!"); string person = "[\"name\":\"fanqi\",\"age\":25,\"phone\":[\"10086\",\"10010\"],\"name\":\"zhangrong\",\"age\":24,\"phone\":[\"10000\",\"10010\"]]"; List<Person> personList = JsonSerializer.Deserialize<List<Person>>(person); string json = JsonSerializer.Serialize(personList, personList.GetType()); JsonDocument document = JsonDocument.Parse(person); Console.ReadKey(); class Person public string name get; set; public int? age get; set; public List<string> phone get; set;
以上是关于.Net Core 3.0原生Json解析器的主要内容,如果未能解决你的问题,请参考以下文章
新的 ASP.NET Core 3.0 Json 序列化器遗漏了数据
SignalR .NET Core camelCase JSON 合同解析器
asp.net core 3.0 MVC JSON 全局配置