如何在牛顿软件 JSON 反序列化上接受单个属性的多个名称
本文关键字:属性 单个 软件 反序列化 JSON | 更新日期: 2023-09-27 17:56:22
我们有一个我们定义的标准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
进行反序列化。