.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 合同解析器

使用新的 Net Core 3.0 Json 时忽略属性

asp.net core 3.0 MVC JSON 全局配置

.Net Core 3.0 JsonSerializer 填充现有对象

AspNetCoreRateLimit .NET Core 3.0 - 无法解析参数 IMemoryCache 缓存