public class Employee
{
publlic string FullName { get; set; }
[JsonIgnore]
public List<abc> Abc { get; set; }
}
如果对象反序列化,我怎么能包含属性Abc
,尽管它上面有JsonIgnore
?
答案 0 :(得分:3)
如果序列化数据具有Abc
属性(我假设它已经存在,因为您要对其进行反序列化),则创建另一个没有[JsonIgnore]
属性的类,并将JSON反序列化为该类。
只要您使用Employee
类并且该属性存在,序列化程序就会遵循该属性。这就是它的用途。
如果它绝对需要是Employee
课程而您无法删除该属性,那么只需将其反序列化为您的&#34;其他&#34; class并使用它来创建Employee
的实例。
var employeeWithAbc = JsonConvert.DeserializeObject<EmployeeWithAbc>(json);
var employee = new Employee {
FullName = employeeWithAbc.FullName,
Abc = employeeWithFullName.Abc }
但也请考虑您可能正在查看错误的问题。为什么你对该房产有[JsonIgnore]
?
答案 1 :(得分:0)
根据Scott的建议,如果你的Employee
类有许多属性,你可以创建单独的部分类(以避免重复自己并避免你做更多的工作而不是你需要)。即您可以按如下方式设置基类Employee
:
public class Employee
{
public string name
{
get;
set;
}
}
然后您可以通过创建Employee
的派生类来创建其他特定的序列化/反序列化类,然后继承Employee
的属性/属性:
public class ParseEmployee : Employee
{
public public List<abc> Abc
{
get;
set;
}
}