Ошибка GraphQL при преобразовании массива объектов JSON в словарьC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Ошибка GraphQL при преобразовании массива объектов JSON в словарь

Сообщение Anonymous »

У меня есть серверная служба .NET Core GraphQL, используемая в приложении веб-сборки Blazor с запросом GetData GraphQL с классом, имеющим Dictionary, например:

Код: Выделить всё

public class SomeClass
{
public int Id { get; set; }
public Dictionary Items { get; set; }
}
Этот класс находится в пакете nuget как на стороне сервера, так и на стороне клиента, поэтому его нельзя изменить. Когда я выполнил запрос графа от клиента, отображается ошибка:

Необработанный компонент рендеринга исключений: невозможно десериализовать текущий массив JSON (например, [1,2,3] ) в тип 'System.Collections.Generic.Dictionary`2[System.String,System.Decimal]', поскольку для этого типа требуется объект JSON (например, {"name":"value"}) для правильно десериализовать.
Чтобы исправить эту ошибку, либо измените JSON на объект JSON (например, {"name":"value"}), либо измените десериализованный тип на массив или тип, реализующий интерфейс коллекции (например, ICollection). , IList), например List, который можно десериализовать из массива JSON. JsonArrayAttribute также можно добавить к типу, чтобы заставить его десериализоваться из массива JSON.

Это потому, что ответ от Graphql возвращается как массив объектов JSON. для словаря, и из-за вышеуказанной ошибки он не преобразуется в словарь. Я знаю, что могу написать конвертер для его десериализации с помощью сериализатора Graphql Newtonsoft, но есть ли лучший подход к обработке словарей для отправки с серверной части на клиентскую сторону?

Подробнее здесь: https://stackoverflow.com/questions/793 ... dictionary
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»