如何在newtonsoft JSON反序列化上接受单个属性的多个名称?

时间:2015-06-16 09:28:19

标签: c# json json.net

我们定义了一种标准0格式(错字是故意的):

json

被反序列化(使用newtonsoft):

{
  "Name" : "John",
  "Salari" : "150000"
}

有没有办法将class Person { public string Name; public string Salari; } 更改为Salari,仍然可以接受旧名称的邮件? 类似的东西:

Salary

要让newtonsoft反序列化器了解class Person { public string Name; [DeserializeAlso("Salari")] public string Salary; } 应该反序列化到Salari字段吗?

1 个答案:

答案 0 :(得分:3)

您可以使用属性:

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用于反序列化。