当前位置: 首页 > news >正文

网站开发人员保密wordpress可视化找不着

网站开发人员保密,wordpress可视化找不着,苏州知名网站建设公司,网站禁止右键代码在.NET 6.0中#xff0c;JSON处理库得到了显著的改进#xff0c;主要体现在System.Text.Json上。以下是对.NET 6.0中改进的JSON处理库的详细分析#xff1a; 一、System.Text.Json的引入与优势 在.NET 6中#xff0c;Microsoft引入了新的JSON库System.Text.Json作为官方推…在.NET 6.0中JSON处理库得到了显著的改进主要体现在System.Text.Json上。以下是对.NET 6.0中改进的JSON处理库的详细分析 一、System.Text.Json的引入与优势 在.NET 6中Microsoft引入了新的JSON库System.Text.Json作为官方推荐的序列化框架取代了以前常用的Newtonsoft.JsonJson.NET。System.Text.Json提供了以下优势 性能提升System.Text.Json使用了更少的内存开销并且在处理大量数据时有显著的速度优势。这得益于其高效的序列化和反序列化机制以及针对JSON处理进行的深度优化。API更简洁System.Text.Json的API设计更为直观和简单许多操作可以直接通过LINQ表达式完成。这使得开发者在处理JSON数据时更加便捷和高效。兼容性强虽然Json.NET支持的功能丰富但大部分情况下System.Text.Json足够满足需求。同时它能更好地与.NET的其他部分集成提供了一致的编程体验。 二、System.Text.Json的新特性 在.NET 6中System.Text.Json引入了多项新特性以增强其功能和灵活性 2.1 忽略循环引用 在.NET 6中System.Text.Json允许在序列化时忽略循环引用避免了因循环依赖而导致的异常。这通过JsonSerializerOptions中的ReferenceHandler.IgnoreCycles选项来实现。 using System; using System.Text.Json; using System.Text.Json.Serialization; public class Person { public string Name { get; set; } public Person BestFriend { get; set; } } public class Program { public static void Main() { var person new Person { Name Alice, BestFriend new Person { Name Bob, BestFriend new Person { Name Alice } // 循环引用 } }; var options new JsonSerializerOptions { ReferenceHandler ReferenceHandler.IgnoreCycles }; string json JsonSerializer.Serialize(person, options); Console.WriteLine(json); } } 在这个例子中Person类有一个BestFriend属性它指向另一个Person对象。如果BestFriend的BestFriend又指向原始对象就会形成循环引用。通过设置JsonSerializerOptions的ReferenceHandler为IgnoreCyclesSystem.Text.Json会忽略这种循环引用避免序列化时出现异常。  2.2 序列化和反序列化的通知 System.Text.Json公开了序列化和反序列化的通知接口如IJsonOnDeserialized、IJsonOnDeserializing、IJsonOnSerialized和IJsonOnSerializing。这使得开发者可以在序列化和反序列化过程中执行自定义逻辑。 using System; using System.Text.Json; using System.Text.Json.Serialization; public class Person { [JsonPropertyName(name)] public string Name { get; set; } [OnDeserialized] public void OnDeserialized() { Console.WriteLine(Deserialized!); } [OnDeserializing] public void OnDeserializing() { Console.WriteLine(Deserializing!); } [OnSerialized] public void OnSerialized() { Console.WriteLine(Serialized!); } [OnSerializing] public void OnSerializing() { Console.WriteLine(Serializing!); } } public class Program { public static void Main() { var person new Person { Name Alice }; string json JsonSerializer.Serialize(person); Console.WriteLine(json); Person deserializedPerson JsonSerializer.DeserializePerson(json); } } 在这个例子中Person类实现了IJsonOnDeserialized、IJsonOnDeserializing、IJsonOnSerialized和IJsonOnSerializing接口中的方法。这些方法在序列化和反序列化过程中会被自动调用允许开发者在这些过程中执行自定义逻辑。 2.3 属 性排序支持 通过JsonPropertyOrderAttribute特性System.Text.Json允许控制属性的序列化顺序。这解决了之前序列化顺序由反射顺序决定的问题提供了更灵活的属性排序方式。 using System; using System.Text.Json; using System.Text.Json.Serialization; [JsonPropertyOrder(nameof(LastName), nameof(FirstName))] public class Person { public string FirstName { get; set; } public string LastName { get; set; } } public class Program { public static void Main() { var person new Person { FirstName John, LastName Doe }; string json JsonSerializer.Serialize(person); Console.WriteLine(json); // 输出: {LastName:Doe,FirstName:John} } } 在这个例子中Person类使用了JsonPropertyOrderAttribute来指定属性的序列化顺序。在这个例子中LastName会在FirstName之前被序列化。  2.4 Utf8JsonWriter的使用 System.Text.Json提供了Utf8JsonWriter类用于高效地编写原始JSON。这使得开发者可以直接操作JSON的字节流提高了JSON生成的效率和灵活性。 using System; using System.Buffers.Text; using System.Text.Json; public class Program { public static void Main() { using (var doc new Utf8JsonWriter(new ArrayBufferWriterbyte())) { doc.WriteStartObject(); doc.WriteString(name, Alice); doc.WriteNumber(age, 30); doc.WriteEndObject(); string json Encoding.UTF8.GetString(doc.Flush()); Console.WriteLine(json); } } } 2.5 对IAsyncEnumerable的支持 System.Text.Json现在支持反序列化JSON数组为IAsyncEnumerableT类型这使得在处理大量数据时可以更加高效地利用异步编程模式。 using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text.Json; using System.Threading.Tasks; public class Program { public static async Task Main() { async IAsyncEnumerableint GetNumbersAsync() { for (int i 0; i 10; i) { await Task.Delay(100); // 模拟异步操作 yield return i; } } using (var stream new MemoryStream()) using (var writer new Utf8JsonWriter(stream)) { writer.WriteStartArray(); await foreach (var number in GetNumbersAsync()) { writer.WriteNumberValue(number); } writer.WriteEndArray(); string json Encoding.UTF8.GetString(stream.ToArray()); Console.WriteLine(json); } } } 在这个例子中GetNumbersAsync是一个返回IAsyncEnumerableint的异步方法。Utf8JsonWriter被用来将异步生成的数字序列化为JSON数组。这种方式对于处理大量数据或需要异步操作的场景特别有用。 三、与Newtonsoft.Json的比较 尽管Newtonsoft.Json在过去一直是.NET生态中处理JSON的流行选择但System.Text.Json在.NET 6中的引入提供了以下优势 性能优势System.Text.Json在性能和内存使用方面通常优于Newtonsoft.Json特别是在处理大量数据时。内置支持System.Text.Json内置于.NET 6核心库中不需要额外安装降低了项目的依赖性和复杂性。一致性System.Text.Json与.NET的其他部分更好地集成提供了一致的编程体验。 然而Newtonsoft.Json仍然是一个功能丰富的JSON库提供了许多高级特性和自定义选项。如果项目需要这些高级特性或已经在使用Newtonsoft.Json并且没有性能或内存使用方面的问题那么继续使用Newtonsoft.Json也是一个可行的选择。 综上所述.NET 6.0中的System.Text.Json库在性能、API简洁性、兼容性以及新特性方面都有显著的改进。这些改进使得System.Text.Json成为处理JSON数据的强大工具为.NET开发者提供了更高效、更便捷的JSON处理能力。
http://www.hkea.cn/news/14263155/

相关文章:

  • 网站建设必学课程网站编辑制作
  • 哪里可以制作网站wordpress安装包下载
  • 怎么做网站维护宣传中企动力是干什么的
  • wordpress取第一张图片下载班级优化大师
  • 泰安网站建设哪家不错国际重大新闻事件2023
  • 网站页面建设规划文案我是做网站的
  • 宁波手机网站开发公司番禺网站开发哪家专业
  • 免费金融发布网站模板下载企业邮箱哪家便宜
  • 十大网站在线观看徐州市铜山新区建设局网站
  • 建设网站需要给钱吗谷歌网站为什么打不开
  • 网站域名过期未续费怎么办什么叫网站外链
  • 浙江联科网站开发一元注册公司流程
  • 不想网站备案如何办算命网站建设开发
  • dedecms 做微网站怎么做淘客推广网站
  • 高端网站制作网站建设广州建网站维护公司
  • 网站设建设表单wordpress怎么使用自己的模板
  • 不会代码 怎么做网站济南网站开发公司
  • 海口制作手机网站vultr 搭建wordpress
  • 惠州开发做商城网站建设哪家好如何用dw做网站地图
  • dede本地搭建好网站后台密码和用户名是什么wordpress 内容采集
  • 深圳建网站服务wordpress文章首字下沉
  • 化妆品网站建设原因来宾市住房和城乡建设局网站
  • 影视传媒广告公司网站模板手机平台网站系统
  • 建设电子商务网站市场分析网站建设实训个人总结3000字
  • 室内设计案例去什么网站建立一个公司
  • 腾讯企业邮箱电脑版温州网站优化推广方案
  • 网站建设应该列入什么科目wordpress 显示全部分类
  • wap卖料建站系统六安政务中心网站
  • 网站开发保存学习进度的方案网站的根目录怎么找
  • 网站建设 中企动力福州阀门网站开发从入门到精通