我们有一个我们定义的标准json
格式(拼写错误是故意的):
{
"Name" : "John",
"Salari" : "150000"
}
它被反序列化(使用NewtonSoft)为:
class Person
{
public string Name;
public string Salari;
}
有没有办法将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
进行反序列化。