Условное отображение Stripe.net / JSON.net для того же имени свойства.
Я пытаюсь добавить поддержку функции расширения, которую stripe.com внедрил в свои API, но не знаю, как к этому подойти. В основном, если вы отправите запрос, они вернут объект с идентификатором FK другому объекту. Если вы отправите запрос с расширением []= объект, он вместо этого отправит реальный объект вместо идентификатора. Моя проблема заключается в том, что они оба используют одно и то же имя свойства.
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
}
Пример Json с идентификатором
{
object_id : "1",
sub_object: "12345"
{
Пример Json с объектом вместо
{
object_id : "1",
sub_object: {
obj_id : "1",
prop : "whatever"
}
}
В идеале мне не нужно создавать отдельный объект для каждого экземпляра, так как некоторые из этих объектов имеют несколько свойств, которые могут быть расширены. Я хотел бы обратиться к методу, чтобы он возвращал json, кое-как проверить, является ли sub_object просто строкой, затем сопоставить его с полем SubObjectId, а если sub_object является объектом, то вместо этого сопоставьте его с полем SubObject.
Я понимаю, что вы не можете иметь объект C# с несколькими свойствами, сопоставленными одному и тому же свойству C#, поэтому я в некоторой степени не в курсе.