ASP.NET WEB API Измените JSON в ответ, поскольку он должен вернутьC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 ASP.NET WEB API Измените JSON в ответ, поскольку он должен вернуть

Сообщение Anonymous »

Так что в настоящее время я строю веб -API ASP.NET с .net5 (я работаю стажером в компании, где у нас есть только приложения .net5, к сожалению). Это не проблема, я создал еще один атрибут в моем компоненте , чтобы проанализировать строку по фактическому значению JSON.

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

public partial class Component
{
[...]
public string Details { get; set; }
[...]
}
< /code>
public class ComponentDTO
{
[...]
public string Details { get; set; }
public JObject ParsedDetails { get; set; }
}
< /code>
Я знаю, что он проанализирован правильно, потому что я поймаю JSON, который должен быть отправлен внутри функции моего API, как SO (плата имеет компоненты): < /p>
[HttpGet("{Ref}")]
public async Task Get(string Ref)
{
try
{
var board = await _boardService.GetOneBoard(Ref);

if (board == null)
{
return NotFound();
}
Console.WriteLine(board.Compositions.ElementAt(3).Component.ParsedDetails);

var responseBody = JsonConvert.SerializeObject(board, Formatting.Indented);
_logger.LogInformation($"Response: {responseBody}");

return Ok(board);
}
catch(Exception e)
{
Console.WriteLine(e.Message);
return StatusCode(500, "Internal Server Error");
}
}
< /code>
Итак, когда я регистрирую тело ответа, это то, что я получаю для деталей одного компонента: < /p>
"ParsedDetails": {
"core": "Cortex-A53",
"speed": "1.2 GHz",
"memory_interface": "DDR3/4"
}
< /code>
Но на чванстве или в моем браузере это то, что я получаю за тот же компонент: < /p>
"parsedDetails": {
"core": [],
"speed": [],
"memory_interface": []
}
< /code>
Вот как я пробираю свой атрибут json: < /p>
public static JObject ParseJsonDetails(string jsonString)
{
JObject parsedDetails = string.IsNullOrEmpty(jsonString) ? new JObject() : JObject.Parse(jsonString);
Console.WriteLine(parsedDetails);
return parsedDetails;
}

public async Task GetOneBoard(string reference)
{
return await _context.Boards
.Select(b => new BoardDTO
{
[...]
Compositions = b.Compositions.Select(c => new CompositionDTO
{
Component = new ComponentDTO
{
[...]
ParsedDetails = ParseJsonDetails(c.Component.Details),
}
}).ToList(),
[...]
})
.FirstOrDefaultAsync(b => b.Ref == reference);
}
Я на самом деле не знаю, что делать, так как я поймаю тело ответа прямо перед тем, как оно будет отправлено, и я не знаю, как обрабатывается значение ok (плата) , и исключение или ошибка.


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

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

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

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

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

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

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