Я создаю веб-API с использованием ядра asp.net и базы данных Cosmos. Я создаю API-интерфейс для получения всего элемента. Я получил следующую ошибку. Я предоставляю весь свой репозиторий, кодовый удар контроллера. Пожалуйста, помогите мне узнать, что я не так ??
Код контроллера:
public async Task<IActionResult> FetchListAsync(
[FromQuery]Guid? itemId)
{
var result =
await _catalogRepository.FetchListAsync(
itemId);
return Ok(result);
}
Код репозитория:
public async Task<IEnumerable<Catalog>> FetchListAsync(
Guid? itemId)
{
var feedOptions =
new FeedOptions
{
MaxItemCount = -1,
EnableCrossPartitionQuery = true
};
var query = new SqlQuerySpec
{
QueryText = "SELECT * FROM c"
};
var orderDocumentQuery =
_cosmosClient.CreateDocumentQuery<Catalog>(
UriFactory.CreateDocumentCollectionUri(
_azureCosmosDbOptions.Value.DatabaseId, "catalog"), query, feedOptions)
.AsDocumentQuery();
var catlog = _cosmosClient.CreateDocumentQuery<Catalog>(UriFactory.CreateDocumentCollectionUri(
_azureCosmosDbOptions.Value.DatabaseId, "catalog"), query, feedOptions).AsEnumerable().FirstOrDefault();
var objResponse1 =
JsonConvert.DeserializeObject<List<Catalog>>(catlog.ToString());
return objResponse1;
}
ошибка:
JsonSerializationException: Невозможно десериализовать текущий объект JSON
(например, {"name": "value"}) в тип
'System.Collections.Generic.List`1 [CatalogAPI.Entities.Industy]
потому что для десериализации типа требуется массив JSON (например, [1,2,3])
правильно. Чтобы исправить эту ошибку, либо измените JSON на массив JSON
(например, [1,2,3]) или измените десериализованный тип так, чтобы он был нормальным
Тип .NET (например, не примитивный тип, такой как целое число, а не коллекция
типа как массив или список), который может быть десериализован из JSON
объект. JsonObjectAttribute также может быть добавлен к типу, чтобы заставить его
десериализовать из объекта JSON. Путь 'Industy.Id', строка 1, позиция
117