C# 如何在newtonsoft JSON反序列化上为单个属性接受多个名称?
我们定义了一种标准的C# 如何在newtonsoft JSON反序列化上为单个属性接受多个名称?,c#,json,json.net,C#,Json,Json.net,我们定义了一种标准的json格式(打字是故意的): 将其反序列化(使用newtonsoft)以: 是否有办法将Salari更改为Salary,并且仍然能够接受使用旧名称的邮件? 比如: class Person { public string Name; [DeserializeAlso("Salari")] public string Salary; } 要使newtonsoft反序列化程序了解应将Salari反序列化到Salary字段?可以使用以下属性: class
json
格式(打字是故意的):
将其反序列化(使用newtonsoft)以:
是否有办法将Salari
更改为Salary
,并且仍然能够接受使用旧名称的邮件?
比如:
class Person
{
public string Name;
[DeserializeAlso("Salari")]
public string Salary;
}
要使newtonsoft反序列化程序了解应将
Salari
反序列化到Salary
字段?可以使用以下属性:
class Person
{
protected string _Salary;
public string Salary
{
get { return _Salary; }
set { _Salary = value; }
}
public string Name { get; set; }
}
class BackwardCompatiblePerson : Person
{
public string Salari
{
get { return _Salary; }
set { _Salary = value; }
}
}
并使用
Person
进行序列化和BackwardCompatiblePerson
进行反序列化。是字符串。替换(“\'Salari\”,'Salary\”)这是不可能的?请检查。@Nissim我宁愿不要,因为这需要在很多时间内跟踪它places@AndreiV这不是划掉“Salary”而保留“Salari”吗?@AndreiV我认为shmoopy想使用匿名对象。你引用的答案要求对象存在
class Person
{
public string Name;
[DeserializeAlso("Salari")]
public string Salary;
}
class Person
{
protected string _Salary;
public string Salary
{
get { return _Salary; }
set { _Salary = value; }
}
public string Name { get; set; }
}
class BackwardCompatiblePerson : Person
{
public string Salari
{
get { return _Salary; }
set { _Salary = value; }
}
}