我正在尝试对json有效载荷进行审理,因为我控件之外的原因包含一个属性(即成员),命名与其类名称完全相同。类似:
{
...,
"Id": {
"A" : "Hello",
"B" : "World",
...
"Id" : 1
},
...
}
当我从这个有效载荷中得出一堂课时,我需要类似的东西:
class Id{
public string A, B;
public int Id;
}
显然,编译器抱怨:成员名称不能与封闭类型
相同我如何重命名成员(或该效果的类),因此JSON.NET(我用来更容易制造它的库)可以仅通过调用JsonConvert.DeserializeObject<T>
?
在属性中使用其他名称,并提示json.net如何进行该属性的挑选...
public class Id
{
public string A {get; set;}
public string B {get; set;}
[JsonProperty("Id")]
public int IdProp;
}
使用jsonproperty属性,该属性允许您在映射到其他名称的目标属性时指定源属性的名称。
public class Id
{
public string A { get; set; }
public string B { get; set; }
[JsonProperty("Id")]
public int ExtId { get; set; }
}