System.Text.Json.JsonSerializer支持序列化的属性与字段有哪些?
System.Text.Json.JsonSerializer 默认可序列化成员范围
以下为默认配置(未自定义JsonSerializerOptions、未添加[JsonInclude]等序列化特性)下的支持情况:
| Private/Protected/Internal Fields | Private/Protected/Internal Properties | Public Fields | Public Properties | |
|---|---|---|---|---|
| Readonly | ❌ | ❌ | ❌ | ✅ |
| Writeonly | ❌ | ❌ | ❌ | ❌ |
| Read & Write | ❌ | ❌ | ❌ | ✅ |
额外规则说明
- 若需要序列化公共字段,需手动配置
JsonSerializerOptions.IncludeFields = true,开启后公共只读、公共读写字段都会被纳入序列化范围。 - 若需要序列化非public的成员,需给对应成员显式添加
[JsonInclude]特性,同时要求属性的get/set访问器和对应成员的访问权限匹配。 - 只写属性默认无论如何都不会参与序列化(输出JSON),仅当显式添加
[JsonInclude]特性时,才会在反序列化阶段接收JSON中的对应值完成赋值。
内容的提问来源于stack exchange,提问作者trinalbadger587
相关产品推荐
相关产品推荐

