Условное отображение 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#, поэтому я в некоторой степени не в курсе.

0 ответов

Другие вопросы по тегам