Я программирую реализацию C# для Qualtrics API (v 2.5), используя RestSharp. При вызове метода getUserIds он возвращает список пользователей в формате JSON (см. Пример ниже).REST Api возвращает разные имена объектов для одного и того же объекта, как обращаться с RestSharp?
Проблема/вопрос я лицо, что для каждого объекта пользователя (список объектов под Result
) он генерирует другой идентификатор, начиная с URH_
. При использовании json2csharp предполагается, что он всегда является другим классом, хотя на самом деле он абсолютно такой же, как вы можете видеть на выходе, и, как указано в документации api. Как я могу наилучшим образом разрешить это - чтобы я смог сделать класс UserData
, который я могу повторно использовать? Потому что теперь я, очевидно, всегда вижу эти случайные URH_
префиксные классы в каждом ответе.
Примечания: Я думал, что я мог бы попытаться массировать ответ первым, и когда я получаю ответ заменить каждый URH_
приставку объекта под корневым объектом Result
с "UserData"
строкой - но я считаю, что это нарушение правил немного, и подумал, что у сообщества будет лучшее решение?
Ниже необработанный вывод JSON (обратите внимание, что я удалил конфиденциальную информацию):
{"Meta":{"Status":"Success","Debug":""},"Result":{"URH_3wpA9pxGbE0c7Xu":{"DivisionID":null,"UserName":"[email protected]","UserFirstName":"x","UserLastName":"x","UserAccountType":"UT_4SjjZmbPphZGKDq","UserEmail":"[email protected]","UserAccountStatus":"Active"},"URH_57vQr8MVXgpcPUo":{"DivisionID":"DV_XXXXXXXX","UserName":"[email protected]","UserFirstName":"X","UserLastName":"X","UserAccountType":"UT_BRANDADMIN","UserEmail":"[email protected]","UserAccountStatus":"Active"},"URH_6ujW1EP0QJOUaoI":{"DivisionID":"DV_XXXXXXXYZ","UserName":"[email protected]","UserFirstName":"x","UserLastName":"x","UserAccountType":"UT_XXXXXABCD","UserEmail":"[email protected]","UserAccountStatus":"Active"}}}
Это то, что я получаю при создании модели с использованием json2csharp:
public class Meta
{
public string Status { get; set; }
public string Debug { get; set; }
}
public class URH3wpA9pxGbE0c7Xu
{
public object DivisionID { get; set; }
public string UserName { get; set; }
public string UserFirstName { get; set; }
public string UserLastName { get; set; }
public string UserAccountType { get; set; }
public string UserEmail { get; set; }
public string UserAccountStatus { get; set; }
}
public class URH57vQr8MVXgpcPUo
{
public string DivisionID { get; set; }
public string UserName { get; set; }
public string UserFirstName { get; set; }
public string UserLastName { get; set; }
public string UserAccountType { get; set; }
public string UserEmail { get; set; }
public string UserAccountStatus { get; set; }
}
public class URH6ujW1EP0QJOUaoI
{
public string DivisionID { get; set; }
public string UserName { get; set; }
public string UserFirstName { get; set; }
public string UserLastName { get; set; }
public string UserAccountType { get; set; }
public string UserEmail { get; set; }
public string UserAccountStatus { get; set; }
}
public class Result
{
public URH3wpA9pxGbE0c7Xu URH_3wpA9pxGbE0c7Xu { get; set; }
public URH57vQr8MVXgpcPUo URH_57vQr8MVXgpcPUo { get; set; }
public URH6ujW1EP0QJOUaoI URH_6ujW1EP0QJOUaoI { get; set; }
}
public class RootObject
{
public Meta Meta { get; set; }
public Result Result { get; set; }
}
Спасибо, я попробую это и вернусь к вам! –
Как раз для того чтобы подтвердить, работал для меня a-ok этот путь. Глупый я сам не придумал это, новичок в использовании REST API;) ... –