#c# #json #.net #api
Вопрос:
Я пишу свой первый ВЕБ-Api, используя ASP.NET Ядро. Когда я возвращаю элементы в формате JSON, есть такое поле, как Фотоид, которое я не хочу включать в JSON-ответ. Как я могу это осознать?
[HttpGet("{type}")]
public async Task<ActionResult> GetItems(int page, int count, string type)
{
var itemsCount = _context.ClothesItems.Where(i => i.Type == type).Count();
var amountToSkip = page == 1 ? 0 : page * count;
var amountToTake = count - amountToSkip;
if (amountToSkip >= itemsCount || count > amountToTake)
return BadRequest("The number of item need to take is out of range!");
var clothesItems = await _context.ClothesItems.Where(i=> i.Type==type)
.Include("Photos")
.Skip(amountToSkip)
.Take(amountToTake)
.ToListAsync();
var responsesStatusCode = Response.StatusCode;
var result = new
{
items = clothesItems,
total = itemsCount,
statusCode = responsesStatusCode,
};
return new JsonResult(result);
}
[1]: https://i.stack.imgur.com/I5wYq.jpg — джсон
Комментарии:
1. Пожалуйста, не добавляйте ответ JSON, но включите его в качестве примера «кода» в сообщение, чтобы сообщение было более понятным и на него было легче ответить
2. Пожалуйста, предоставьте достаточно кода, чтобы другие могли лучше понять или воспроизвести проблему.
Ответ №1:
Вы можете использовать [JsonIgnore]
атрибут в модели фотографий, чтобы предотвратить его удаление из сериализации. Но это также предотвратит захват этого значения из запроса, если вы планируете использовать ту же модель, что и тело запроса.
Подумайте о том, чтобы взглянуть на это для получения дополнительной информации: https://docs.microsoft.com/en-us/dotnet/standard/serialization/system-text-json-ignore-properties?pivots=dotnet-5-0