JsonIgnore 来自父级的子属性
Posted
技术标签:
【中文标题】JsonIgnore 来自父级的子属性【英文标题】:JsonIgnore child property from parent 【发布时间】:2021-12-18 17:18:38 【问题描述】:在将子类上的父属性序列化为 Json 时,我试图忽略它,但它不起作用。
我有一个这样的对象:
public class DependantQuestionCreateRequest : QuestionCreateRequest
[JsonIgnore]
public new DependantQuestionCreateRequest DependantQuestion;
如您所见,我隐藏父属性 DependantQuestion 只是为了向子属性添加 JsonIgnore 属性。
这是因为两个类是相等的,唯一的区别是父类可以在里面包含一个子类作为属性,而子类不能。
我不想将所有道具从一个模型复制到另一个模型,只是为了避免在 DependantQuestion 属性上大摇大摆地进行序列化。
虽然这段代码不起作用,我的大摇大摆地显示它就像
"dependantQuestion" : "string"
在我看来,这意味着 JsonIgnore 属性实际上被忽略了。
有谁知道在孩子身上隐藏这个父属性的方法?
【问题讨论】:
尝试使用virutal/override并覆盖子属性,而不是用关键字new
隐藏它
是的,使用虚拟/覆盖this works
谢谢你们。它正在工作:)。
【参考方案1】:
@gunr2171 和 @Fabjan 在 cmets 上提供的解决方案回答了我的问题。
public class BaseClass
public virtual string MyProperty get;set;
public class ChildClass : BaseClass
[JsonIgnore]
public override string MyProperty get;set;
【讨论】:
以上是关于JsonIgnore 来自父级的子属性的主要内容,如果未能解决你的问题,请参考以下文章
Java - 为啥另一个包中的子级无法通过父级引用访问父级的受保护方法?
MAX日期的Laravel子查询-与父级的子查询链接中的日期时间格式无效