Задать вопрос
insighter
@insighter
-First time? - Huh? (C#, React, JS)

Как в контроллере вернуть уже сериализованный json?

Есть задача, что бы контроллер возвращал уже сериализованный json, который он получает от внешнего API метода который он проксирует.

Сейчас такой вариант:

public async Task<IActionResult> GetPayInfoAsync(Guid transactionId)
{
    ... 
    using var response = await client.SendAsync(request);
    var responseText = await response.Content.ReadAsStringAsync();

    return new ObjectResult(responseText) { ContentTypes = { new ("application/json") } };
}


Возвращает правильный заголовок, но добавляет зачем то кавычку перед ответом и после ответа :
640eb0a175c82486719990.jpeg
(на картинке только часть ответа)

Если возвращать в контроллере как строку, то библиотека автоматом прописывает plain/text в заголовок.
  • Вопрос задан
  • 296 просмотров
Подписаться 2 Средний 1 комментарий
Решение пользователя insighter К ответам на вопрос (2)
insighter
@insighter Автор вопроса
-First time? - Huh? (C#, React, JS)
Ответ Rsa97 оказался почти правильным. Только надо использовать родную библиотеку .NET для десериализации, а не Newtonsoft.

Десериализатор возвращает объект типа JsonElement, который нормально конвертируется в ответе (тип данных в заголовке можно не указывать уже):
return new ObjectResult(System.Text.Json.JsonSerializer.Deserialize<object>(responseText));
Ответ написан
Комментировать