1
我们在我们的项目中使用Json.Net
来序列化和反序列化json对象。如何将属性添加到json对象上?
我们的实体有一些DateTime
性质,我希望能够将它们转换成PersianCalender DateTime
,并为他们在我的JSON对象的字符串:
例如,我们有这样的实体:
public class PersonCertificate
{
public DateTime CertificateDate{get;set;}
}
我想有一个JSON对象是这样的:
{
"PersianCertificateDate":"1395/10/10"
}
所以我认为这将是巨大的,有一个属性命名“AsPersianDate”例如,这样我可以做这样的事情:
public class PersonCertificate
{
[JsonIgnore]
[AsPersianDate]
public DateTime CertificateDate{get;set;}
}
我知道我可以有一个自定义的合同解析器拦截JSON的创造过程,但我不知道我应该怎么告诉Json.Net
反序列化PersianCertificateDate
分成CertificateDate
?
您可以添加第二个属性,它会留下当你做json到object的时候是空的,因为json没有那个属性。但是,你可以根据Date来计算它,然后你的object-to-json会得到这些额外的数据。 – SimpleVar
这就是我现在正在做的问题是我必须为所有实体添加这些额外的属性,但是当我想序列化和反序列化我的对象时,我只需要它们。 – Beatles1692
因此,创建一个只添加这些属性的派生类,并且仅用于序列化和反序列化,并且您的“真实”类保持干净。派生类甚至可以是一个类中的私有类,所以它们甚至不会为整个项目中的intellisense添加垃圾。 – SimpleVar