请问.net5 自带的System.Text.Json如何序列号对象的字段(成员变量)

piao2004 没有  2021-05-12 05:20:36
比如:
public class classA{
public string a;
publit string b {get;set;}
}
那么序列化这个classA时,结果Json字符串中并没有a这个变量值,只有b
请问要加什么option才能实面可以序列化a成员?
百度了很多没有找到解决方法
...全文
99 点赞 收藏 8
写回复
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
issuse#876 告诉你在net5下已经提供字段支持 使用方式定义option的 IncludeFields为ture就行了
new JsonSerializerOptions()
            {
                IncludeFields = true
            }
回复
ziqi0716 05-12
一般.net序列化和反序列化json时候都是针对属性的,字段会被忽略掉。另外,写类的时候,如果需要外部访问的成员,建议写成属性,可以设置为只读,这样看起来也舒服,你写的也没错,就是大家看起来比较不舒服。
回复
如果说python关注pip,java关注maven,我们net也应该关注nuget以及官方的issues。net自娱自乐很多年,如今就算有issues都木人看,所以有些人经常抱怨,但抱怨的无效,与其跟着博客园混不如直接跟着官方混,官方才是最适合往前看的地方 来看看,net5在json这块给你做了些啥把
引用
GitHub Issue Description #30820 添加(反)序列化时保留对象引用的机制 #32937 为HttpClient和HttpContent添加扩展方法使其能够(反)序列化JSON #30255 支持(反)序列化带引号的数字 #29895 支持使用参数化构造函数反序列化对象 #876 支持(反)序列化字段 #779 支持忽略值类型默认值 #30687 支持有条件地忽略属性(always,never,when null/default) #30524 支持非字符串字典键(non-string dictionary keys) #29743 允许使用非公共属性访问器进行(反序列化) #34439 为自定义转换器提供处理null值的选项 #38539 支持新的C# recored类型 #30445 将复制构造函数添加到JsonSerializerOptions #34626 为JsonSerializerOptions添加采用序列化默认值的构造函数 #31326 使得JsonSerializer能够在Xamarin iOS / Android上运行
回复
此功能在net5中已经添加,请参考官方issues#876 https://github.com/dotnet/runtime/issues/876
回复
wang_peng 05-12
若要忽略单个属性,使用 [JsonIgnore] 特性。对应的有[JsonInclude]特性(.Net Core 3.1不支持)
回复
wang_peng 05-12
像b一样不就完了,你都说了, a这个变量,它是个变量,又不是属性
回复
xuzuning 05-12
publit string a {get;set;}
回复
{get;set;}
回复
相关推荐
发帖
C#
创建于2007-09-28

10.5w+

社区成员

.NET技术 C#
申请成为版主
帖子事件
创建了帖子
2021-05-12 05:20
社区公告

让您成为最强悍的C#开发者