Десериализовать различные запросы JSon - PullRequest
0 голосов
/ 30 сентября 2018

У меня есть запрос Json, возвращающийся в следующем формате:

{
  "data": {
    "errors": [
      "string"
    ],
    "enrolled": [
      0
    ]
  }
}

Однако этот формат, похоже, возвращает только в том случае, если количество элементов в объекте ошибок равно 0. Если есть только 1 иличем больше объектов ошибок, тем формат возвращается без объекта ошибок, являющегося массивом, но вместо этого в нем есть новый массив, как показано ниже:

{  
   "data":{  
      "enrolled":[  

      ],
      "errors":{  
         "existing_enrollments":[  
            {  
               "user_id":13040,
               "course_id":3
            }
         ]
      }
   },
   "version":"1.0.0",
   "_links":[  
}

Мой объект запроса выглядит следующим образом:

    public class CreateEnrollmentResponse
    {
        [JsonProperty("data")]
        public CreateEnrollment_Data CreateEnrollment_Data { get; set; }
    }

    public class CreateEnrollment_Data
    {
        [JsonProperty("errors")]
        public CreateEnrollment_Errors CreateEnrollment_Errors { get; set; }

        [JsonProperty("enrolled")]
        public List<CreateEnrollment_Enrolled> CreateEnrollment_Enrolled { get; set; }
    }

    public class CreateEnrollment_Enrolled
    {
        [JsonProperty("id_user")]
        public int id_user { get; set; }

        [JsonProperty("id_course")]
        public int id_course { get; set; }

        [JsonProperty("waiting")]
        public bool waiting { get; set; }
    }

    public class CreateEnrollment_Errors
    {
        [JsonProperty("existing_enrollments")]
        public List<CreateEnrollment_ExistingEnrollments> CreateEnrollment_ExistingEnrollments { get; set; }
    }

    public class CreateEnrollment_ExistingEnrollments
    {
        [JsonProperty("user_id")]
        public int user_id { get; set; }

        [JsonProperty("course_id")]
        public int course_id { get; set; }
    }

Очевидно, это работает, когда в массиве ошибок есть 1 или более элементов.Но когда он пуст и объект ошибки является просто пустым массивом, он выдает ошибку, поскольку объект ошибки не является массивом в объекте Response.

Есть ли способ динамически обработать это?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...