我正在尝试添加对 stripe.com 已在其 api 中实现的扩展功能的支持,但不确定如何解决此问题。基本上,如果您发送请求,他们会将具有“FK”ID 的对象返回给另一个对象。如果您使用 expand[]=object 发送请求,它将改为通过实际对象而不是 id 发送。我的问题是它们都使用相同的属性名称。
C# 对象
public class MyObject
{
[JsonProperty("object_id")]
public int Id {get;set;}
[JsonProperty("sub_object"]
public string SubObjectId {get;set;}
[JsonProperty("sub_object"]
public SubObject SubObject {get;set;} // this is the object
}
带有 Id 的示例 Json
{
object_id : "1",
sub_object: "12345"
{
使用 Object 的示例 Json
{
object_id : "1",
sub_object: {
obj_id : "1",
prop : "whatever"
}
}
理想情况下,我不必为每个实例创建单独的对象,因为其中一些对象具有多个可以扩展的属性。我想调用方法让它返回 json,一些如何检查 sub_object 是否只是一个字符串然后将其映射到 SubObjectId 字段,如果 sub_object 是一个对象然后让它映射到 SubObject 字段。
我知道您不能将具有多个属性的 C# 对象映射到单个 c# 属性,所以我在这一点上有点无能为力。