











| 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。 |
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。