Я пытаюсь получить список объектов из cors API, но все записи списка имеют значение null.
Мне удалось получить список (тип и длина списка в порядке).
List<PluginModelDB> result;
using (HttpResponseMessage response = await ApiBroker.ApiClient.GetAsync(""))
{
if (response.IsSuccessStatusCode)
{
result = await response.Content.ReadAsAsync<List<PluginModelDB>>();
}
else
{
throw new Exception(response.ReasonPhrase);
}
}
HomeViewModel.PluginList = new List<PluginModelDB>();
foreach (var p in result)
{
HomeViewModel.PluginList.Add(new PluginModelDB { ID = p.ID, Name = p.Name, Description = p.Description});
}
это список, содержащий 2 пустых объекта PluginModelDB
@MateuszFijak публикует код, который фактически десериализует строку JSON и саму строку. В ASP.NET Core нет ReadAsAsync, откуда он взялся? Не зная, как выглядят строка и классы, единственный возможный совет — просто прочитать строку и использовать JSON.NET для ее десериализации.
От ВладаксЛе: It seems that your model is not corresponds to received JSON. You can check you model via http://json2csharp.com/
@MateuszFijak, пожалуйста, прочтите Как задать хороший вопрос? и Как создать минимальный воспроизводимый пример
@MateuszFijak, если вы считаете, что сообщество виновато, подумайте, как отреагирует преподаватель (или сокурсники), если вы зададите им вопрос, в котором отсутствует важная информация или какая-либо полезная информация, а затем поблагодарите парня, который скопировано ответил.





Попробуйте сначала прочитать его как строку, поэтому не десериализуйте его сразу. Выведите эту строку в консоль или простой текстовый файл и посмотрите, сможете ли вы отслеживать там свои элементы. Если нет, проблема в API, который возвращает пустые объекты.
@MateuszFijak вы пропустили важный код. В ASP.NET Core нет ни ApiBroker, ни ReadAsAsync. Раньше был устаревший пакет System.Net.Http.Форматирование с этим методом.
похоже, что API работает неправильно: [{"plugin":null},{"plugin":null}]
да, у меня была ошибка в API, на самом деле у меня была модель БД и пользовательского интерфейса, и их имена не совпадали, поэтому они не совпадали с именами JSON, спасибо за подсказку.
Похоже, ваша модель не соответствует полученному JSON. Вы можете проверить свою модель через http://json2csharp.com/
Это действительно комментарий, а не ответ. Немного больше повторений, вы сможете оставлять комментарии.
Это действительно комментарий, а не ответ. Немного больше повторений, вы сможете оставлять комментарии. На данный момент я добавил комментарий для вас, и я помечаю этот пост для удаления.
это было, у меня было 2 модели одного и того же, и я столкнулся с несоответствием имени
@MateuszFijak нет, не было. Обновите вопрос. Добавьте классы и строку JSON. Вопрос плохой сам по себе, и это не ответ. На самом деле ответ разное намного лучше.
не совсем. лучше получить небольшую подсказку, а остальное понять самому, чем получить полный ответ ;)
@MateuszFijak делает это комментарием, а не ответом. SO — это сайт вопросов и ответов, а не дискуссионный форум.
возможно, он не может правильно десериализоваться. какова ценность
result?