JSON反序列化时成员名与类相同

And*_*osa 3 c# json json.net deserialization json-deserialization

我正在尝试反序列化一个 JSON 有效负载,由于我无法控制的原因,该有效负载包含一个与其类名完全相同的属性(即成员)。就像是:

{ 
  ...,
   "Id": {
      "A" : "Hello",
      "B" : "World",
      ...
      "Id" : 1
   },
   ...
}
Run Code Online (Sandbox Code Playgroud)

当我从这个有效负载派生一个类时,我需要这样的东西:

class Id{
   public string A, B;
   public int Id;
}
Run Code Online (Sandbox Code Playgroud)

显然,编译器抱怨:成员名称不能与封闭类型相同

我如何重命名该成员(或用于该效果的类),以便 Json.NET(我用来使它更容易的库)能够通过调用来“水合”有效负载JsonConvert.DeserializeObject<T>

L.B*_*L.B 5

对属性使用不同的名称,并向 json.net 提供如何反序列化该属性的提示...

public class Id
{
    public string A {get; set;}
    public string B {get; set;}
    [JsonProperty("Id")]
    public int IdProp;
}
Run Code Online (Sandbox Code Playgroud)