Как исключить некоторые поля модели в JSON в GET-методе?

#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