首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏DotNet NB && CloudNative

    System.Text.Json 中的 JsonExtensionData

    System.Text.Json 中的 JsonExtensionData Intro 最近两天在排查我们 API 的一个问题,查看源码过程中发现 System.Text.Json 里有一个有意思的 JsonExtensionData ; 可以看到,这个 JSON 会有更多的信息,会包含 Model 里没有定义的 City 和 Title 此时在使用上面的 Model 就会出现信息丢失,Title 和 City 的信息就会丢掉了,System.Text.Json

    99210发布于 2021-11-10
  • 来自专栏DotNet NB && CloudNative

    System.Text.Json 自定义 Conveter

    System.Text.Json 自定义 Conveter Intro System.Text.Json 作为现在 .NET 默认提供的高性能 JSON 序列化器,对于一些比较特殊类型支持的并不太好,业务需求中总是有各种各样的需要 如果 Id 只会是整数或者整数的字符串,那么我们就可以用 int 来表示,System.Text.Json 从 5.0 开始支持解析带引号的数字,也就是数字的字符串形式可以参考:https://github.com

    84640发布于 2021-11-10
  • 来自专栏喵叔's 专栏

    System.Text.Json自定义Conveter

    System.Text.Json是.NET中提供的高性能 JSON 序列化器,但是它对于比较特殊的类型支持并不好,然而在实际项目中的需求总是各种各样的,很多时候我们需要自定义Converter ,并且微软新出的 如果id只是int或是可以转换为int的字符串,那么我们可以用int来表示,这是因为System.Text.Json已经支持解析带引号的数字,只需要配置JsonNumberHandling即可, 这个功能在

    54920发布于 2021-11-22
  • 来自专栏InCerry

    .NET性能系列文章二:Newtonsoft.Json vs System.Text.Json

    :Newtonsofts Json.NET[3] 和 Microsofts System.Text.Json[4]. System.Text.Json稍稍落后,大约有6 亿次下载。然而,我们需要考虑的是,System.Text.Json自.NET Core 3.1 起就默认随.NET SDK 交付。 不仅 System.Text.Json 的性能比 Newtonsoft 快了一倍,而且堆分配的内存甚至少了 5 倍! 正如我在以前的文章中提到的,节省堆内存甚至比速度更重要,你在这里看到了。 总结 尽管 Newtonsoft 在他们的文档[8]上说: 高性能:比.NET 的内置 JSON 序列化器更快 很明显,至少从.NET 7 开始,Microsofts 的System.Text.Json 我甚至认为,可以推断出结果,目前使用System.Text.Json比Newtonsoft.Json更快。 请记住,这些结果只对最新的.NET 7 有效。

    2.2K30编辑于 2022-11-14
  • 来自专栏DotNet NB && CloudNative

    .NET 9 中 System.Text.Json 的新增功能

    获取最新信息 您可以通过引用 System.Text.Json NuGet 包(https://www.nuget.org/packages/System.Text.Json)的最新版本或 .NET 9 System.Text.Json 不支持对 顶级类型,也就是进行第一次 JsonSerializer.(De)serialize 调用时传递的类型。 众所周知,当需要反序列化不是来自 System.Text.Json 的 JSON 有效负载时,这会产生问题。 q=is:pr+is:merged+label:area-System.Text.Json+milestone:9.0.0)为 System.Text.Json 做出贡献。 如果您想为 System.Text.Json 做出贡献,请查看我们在 GitHub 上的求助问题列表(https://github.com/dotnet/runtime/issues?

    72810编辑于 2024-12-05
  • 来自专栏晓晨的专栏

    从 Newtonsoft.Json 迁移到 System.Text.Json

    ,是时候考虑使用 System.Text.Json 了。 System.Text.Json 在默认情况下十分严格,避免进行任何猜测或解释,强调确定性行为。 System.Text.Json ,如果打算使用 .NET 7 不妨考虑一下 System.Text.Json。 Newtonsoft.Json 使用 13.0.2 版本,基于 .NET 7。 System.Text.Json 默认是对注释引发异常,因为 System.Text.Json 规范不包含它们。 就我个人而言我是打算使用 System.Text.Json 了。

    3.5K40编辑于 2023-03-08
  • 来自专栏全球技术精选

    .NET 6 中的七个 System.Text.Json 特性

    Category dotnet = new() { Name = ".NET 6", }; Category systemTextJson = new() { Name = "System.Text.Json 输出: // { // "Name": ".NET 6", // "Parent": null, // "Children": [ // { // "Name": "System.Text.Json ", // "Parent": null, // "Children": [] // } // ] // } 序列化和反序列化通知 在 .NET 6 中,System.Text.Json 10.2 // }, // { // "value": 10.0 // } // ] // } IAsyncEnumerable 支持 在 .NET 6 中, System.Text.Json

    92210编辑于 2022-01-04
  • 来自专栏喵叔's 专栏

    .NET6新东西---System.Text.Json Writeable DOM

    在.NET 6中,微软加入了JSON Node,可以让我们动态编辑一个JSON文档,就像Newtonsoft.Json里的JToken一样,我们就可以更加灵活的操作JSON文档。 这次主要新增的API如下表:

    1.1K20编辑于 2021-12-13
  • 来自专栏JusterZhu

    技术速递|.NET 9 中 System.Text.Json 的新增功能

    作者:Eirik Tsarpalis - 首席软件工程师 排版:Alan Wang System.Text.Json 的9.0 版本包含许多功能,主要侧重于 JSON 架构和智能应用程序支持。 获取最新信息 您可以通过引用 System.Text.Json NuGet 包(https://www.nuget.org/packages/System.Text.Json)的最新版本或 .NET 9 System.Text.Json 不支持对 顶级类型,也就是进行第一次 JsonSerializer.(De)serialize 调用时传递的类型。 众所周知,当需要反序列化不是来自 System.Text.Json 的 JSON 有效负载时,这会产生问题。 q=is:pr+is:merged+label:area-System.Text.Json+milestone:9.0.0)为 System.Text.Json 做出贡献。

    87800编辑于 2025-01-23
  • 来自专栏DotNet NB && CloudNative

    从0到精通,System.Text.Json进阶技巧曝光,性能提升3倍!

    System.Text.Json 是 .NET Core 3.0 及更高版本中引入的高性能 JSON 处理库,提供了序列化和反序列化的功能,并且与 .NET 平台深度集成。 二、基本使用 1. using System; using System.Text.Json; publicclassPerson { publicstring Name { get; set; } publicint using System; using System.Text.Json; publicclassPerson { publicstring Name { get; set; } publicint 配置序列化选项 System.Text.Json 提供了 JsonSerializerOptions 类,用于自定义序列化和反序列化的行为。 }; 四、总结 System.Text.Json 是一个强大且高效的 JSON 处理库,适用于 .NET 开发中的各种场景。

    48310编辑于 2025-04-24
  • 来自专栏newbe36524的技术专栏

    如何使用 System.Text.Json 序列化 DateTimeOffset 为 Unix 时间戳

    在本文中,我们将探讨如何在 System.Text.Json 中将 DateTimeOffset 序列化为时间戳。 代码示例 下面是一个简单的 .NET Core 控制台应用,它演示了如何使用 System.Text.Json 库将 DateTimeOffset 序列化为时间戳。 using System; using System.Text.Json; namespace JsonSerialization { class Program { 总结 本文介绍了如何使用 System.Text.Json 库将 DateTimeOffset 序列化为时间戳。 参考资料 System.Text.Json DateTimeOffset JsonConverter 本文采用 Chat OpenAI 辅助注水浇筑而成,如有雷同,完全有可能。

    1.2K20编辑于 2023-08-23
  • 来自专栏c#分享专栏

    深入理解 .NET 6 的 JSON DOM API: 使用 System.Text.Json 操作 JSON

    在 .NET 生态中,System.Text.Json 是一个轻量级、高性能的库,用于序列化和反序列化 JSON 数据。 JSON DOM API 是 System.Text.Json 提供的一组类,用于将 JSON 文档解析为可操作的 DOM 树。 高性能要求:与传统的 Newtonsoft.Json 比较,System.Text.Json 的性能表现更优,占用更少的内存。 基础用法:解析和读取 JSON以下是一个解析 JSON 数据并读取内容的示例:using System;using System.Text.Json;class Program{ static void 从基础的只读操作到动态的增删改,System.Text.Json 的功能覆盖了广泛的应用场景。通过合理选择和优化,可以充分发挥其性能优势,使你的应用在处理 JSON 数据时更加得心应手。

    5K00编辑于 2024-11-18
  • 来自专栏centosDai

    .NET 6+ 中的源生成器诊断

    SYSLIB1021 多个消息模板项名称只是大小写不同 SYSLIB1022 不能使用格式错误的格式字符串(例如不成对的大括号) SYSLIB1023 不支持生成六个以上的参数 SYSLIB1030 System.Text.Json 源生成器未生成类型的序列化元数据 SYSLIB1031 System.Text.Json 源生成器遇到重复的 JsonTypeInfo 属性名称 SYSLIB1032 System.Text.Json 源生成器遇到非分部的上下文类 SYSLIB1033 System.Text.Json 源生成器遇到具有多个 [JsonConstructor] 注释的类型 SYSLIB1035 System.Text.Json 源生成器遇到具有多个 [JsonExtensionData] 注释的类型 SYSLIB1036 System.Text.Json 源生成器遇到无效的 [JsonExtensionData] 注释 SYSLIB1037 System.Text.Json 源生成器遇到具有仅初始化属性的类型,这些属性不支持反序列化 SYSLIB1038 System.Text.Json 源生成器遇到使用 [JsonInclude] 注释的属性

    83820编辑于 2022-01-06
  • 来自专栏饭勺oO的技术博客

    ABP微服务学习系列-修复System.Text.Json不支持序列化Exception

    Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddlewareImpl.Invoke(HttpContext context) 这是由于接口抛出异常,但是System.Text.Json 完整converter代码如下: using System; using System.Linq; using System.Text.Json; using System.Text.Json.Serialization 到这我们就解决了System.Text.Json不支持序列化Exception的一个问题。

    70710编辑于 2023-10-18
  • 来自专栏DotNet程序园

    .NETCore3.1中的Json互操作最全解读-收藏级

    所以我们信心满满的选择了System.Text.Json。 本文将会全面介绍System.Text.Json 和 Newtonsoft.Json 的相同和异同之处,方便需要的同学做迁移使用,对未来,我们保持期待。 不提供对 System.Json 的互操作性,我们期待以后 System.Text.Json 也能提供 System.Json 的操作便利性。 序列化和反序列化 基本知识已经介绍完成,下面我们进入 System.Text.Json 的内部世界一探究竟。 结束语 本文全面的介绍了 System.Text.Json 在各种场景下的用法,并比较和 Newtonsoft.Json 使用上的不同,也通过实例演示了具体的使用方法,进一步深入讲解了 System.Text.Json

    3.2K21发布于 2020-02-11
  • 来自专栏newbe36524的技术专栏

    使用 System.Text.Json 时,如何处理 Dictionary 中 Key 为自定义类型的问题

    在使用 System.Text.Json 进行 JSON 序列化和反序列化操作时,我们会遇到一个问题:如何处理字典中的 Key 为自定义类型的问题。 使用建议 在使用 System.Text.Json 进行序列化和反序列化操作时,如果要处理字典中 Key 为自定义类型的问题,可以通过定义一个自定义的 JSON 转换器来解决。 总结 本文通过一个实例,介绍了如何使用 System.Text.Json 进行序列化和反序列化操作时,处理字典中 Key 为自定义类型的问题。 参考资料 System.Text.Json How to serialize and deserialize a dictionary with a custom key type 本文采用 Chat

    1.5K20编辑于 2023-08-23
  • 来自专栏DotNet NB && CloudNative

    5步掌握System.Text.Json:ASP.NET Core Web API中的高效JSON处理!

    System.Text.Json 是 .NET Core 3.0 及更高版本中引入的高性能 JSON 处理库,提供了序列化和反序列化的功能,并且与 .NET 平台深度集成, 在 ASP.NET Core 配置 System.Text.Json 在 ASP.NET Core 项目中,可以通过 Startup.cs 或 Program.cs 配置 System.Text.Json 的行为。 序列化和反序列化 序列化 在控制器中返回对象时,System.Text.Json 会自动将其序列化为 JSON: [HttpGet] public IActionResult Get() { var 性能优化 从 .NET 8 开始,System.Text.Json 支持源生成(Source Generation),可以在编译时生成优化的序列化和反序列化代码: [JsonSerializable(typeof 6.特性 请参考:https://mp.weixin.qq.com/s/N1ldYFwjZfscJ4_UW7XBqg 总结 System.Text.Json 是 ASP.NET Core Web API

    1.1K00编辑于 2025-04-26
  • 来自专栏DotNet NB && CloudNative

    .NET JSON处理权威指南:高效属性配置与性能优化实战

    本文将深度解析System.Text.Json库的核心属性,展示它们如何优化JSON输出,并探讨最佳实践场景。 System.Text.Json核心解析 自.NET Core 3.0起,微软推出System.Text.Json作为新一代序列化框架,凭借其原生性能优势,现已成为ASP.NET Core等场景的默认选择 相较于Newtonsoft.Json,其核心优势在于: 特性 System.Text.Json Newtonsoft.Json 运行时优化 ✅ 深度集成.NET运行时 依赖第三方实现 依赖项 ✅ 零额外依赖 容错设计:[JsonExtensionData]增强向前兼容 掌控JSON的终极智慧 System.Text.Json属性体系为开发者提供了: • 精确的数据契约控制 • 最优的序列化性能 • 增强的安全防护

    22810编辑于 2025-06-23
  • 来自专栏跟着阿笨一起玩NET

    asp.net core 3.1 MVC/WebApi JSON 全局配置

    asp.net core 3.1 MVC/WebApi JSON 全局配置 System.Text.Json(default) startup配置代码如下: using System.Text.Encodings.Web ; using System.Text.Json; using System.Text.Unicode; public void ConfigureServices(IServiceCollection options.JsonSerializerOptions.PropertyNameCaseInsensitive = false; }); } using System; using System.Text.Json

    3.4K20发布于 2020-03-12
  • 来自专栏全球技术精选

    「译」使用 System.Net.Http.Json 高效处理Json

    序列化成 String,在 HttpClient 的 HttpContent 中调用GetStringAsync ReadAsStringAsync,可以直接使用 Newtonsoft.Json 和 System.Text.Json Response was invalid or could not be deserialised."); } return null; } 最近.NET 团队引入了一个内置的JSON库 System.Text.Json NET 的性能特性, 比如 Span, 低开销, 能够快速序列化和反序列化, 并且在.NET Core 3.0 集成到了 BCL(基础库), 所以你不需要引用一个额外的包在项目中 今天,我更倾向于使用 System.Text.Json was invalid and cannot be deserialised."); } return null; } 因为我在项目中减少了第三方库的依赖,并且有更好的性能,我更喜欢用 System.Text.Json 对使用者来说非常不方便,我们想对 HttpClient 扩展,允许做这些操作就像调用单个方法一样简单 你可以在github阅读完整的设计文档,团队希望构建一个更加方便的独立发布的库,来在 HttpClient 和 System.Text.Json

    1.6K20发布于 2021-01-11
领券