System.Text.Json

https://mp.weixin.qq.com/s/3M6bhK_BvXhcBBd2yOZK8A

快速参考:行为对齐配置映射表

Newtonsoft.Json 行为System.Text.Json 默认行为System.Text.Json 配置 (JsonSerializerOptions)备注
「反序列化大小写不敏感」 区分大小写 PropertyNameCaseInsensitive = true ASP.NET Core默认已开启此选项。
「驼峰命名策略」 PascalCase (与C#属性名一致) PropertyNamingPolicy = JsonNamingPolicy.CamelCase ASP.NET Core默认已开启此选项。
「忽略JSON注释」 抛出异常 ReadCommentHandling = JsonCommentHandling.Skip  
「忽略尾随逗号」 抛出异常 AllowTrailingCommas = true  
「序列化时忽略null值」 包含null值 DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingNull  
「反序列化带引号的数字」 抛出异常 NumberHandling = JsonNumberHandling.AllowReadingFromString 例如,将"123"反序列化为int类型。
「处理循环引用」 抛出异常 ReferenceHandler = ReferenceHandler.IgnoreCycles IgnoreCycles将循环点置为null,是API场景的常用选择。
「枚举序列化为字符串」 序列化为数字 添加 new JsonStringEnumConverter() 到 Converters 集合 Newtonsoft.Json中也有类似的StringEnumConverter
「中文字符转义」 转义非ASCII字符 Encoder = JavaScriptEncoder.UnsafeRelaxedJsonEscaping 适用于API和AI交互,减少Token消耗。
「动态操作JSON (JObject)」 JsonDocument (只读) 使用 JsonNode / JsonObject / JsonArray .NET 6及以后版本可用,功能对标JObject
posted @ 2026-01-21 09:21  simadi  阅读(1)  评论(0)    收藏  举报