Итак, вы хотите обрабатывать эти различные типы ответов в зависимости от того, что вы получаете ...
Ну, во-первых, вы можете перейти к json2csharp и автоматически сгенерировать классы, если вы этого еще не сделали.
Затем вам нужно будет добавить эти классы, и вы получите что-то вроде этого:
public class File
{
public class RootObject
{
public List<string> fileName { get; set; }
public List<string> date { get; set; }
public List<string> time { get; set; }
public string id { get; set; }
public int version_ { get; set; }
}
}
И в другом классе:
public class Error
{
public class ValidationError
{
public string errorCode { get; set; }
public string path { get; set; }
public string apiMessage { get; set; }
}
public class RootObject
{
public string resultType { get; set; }
public string errorType { get; set; }
public string errorCode { get; set; }
public string apiMessage { get; set; }
public List<ValidationError> validationErrors { get; set; }
public string requestId { get; set; }
}
}
Итак, теперь, когда у вас есть классы для десериализации объектов, вам нужно добавить пространство имен json туда, куда вам нужно получить json (если вы не можете его найти, просто установите самородок Newtonsoft.Json):
using Newtonsoft.Json;
Итак, после того, как вы получите свой ответный объект JSON, вы можете просто десериализовать его в список созданных вами объектов:
var file = JsonConvert.DeserializeObject> (ответ);
Поскольку я не получаю эти объекты json, я не могу полностью воспроизвести его, но вы в основном инкапсулируете это в блок try catch, и если он выдаст какие-либо ошибки, вы узнаете, что полученный вами объект не относится к этому типу ( File), но скорее типа (Error), поэтому после того, как вы поймаете ошибку, вы можете сделать то же самое. И должно произойти то же самое с объектом Error, о котором вы знаете, что ничего не получили.
Звоните мне, если у вас есть какие-либо сомнения.