Я пытаюсь загрузить файл JSON, чтобы прочитать значения из него и сохранить их в базе данных, но у меня возникла проблема с этим. Код моего контроллера выглядит следующим образом:
[Produces("application/json")]
[Route("api/[controller]")]
[ApiController]
public class ImportController : ControllerBase
{
private readonly DatabaseContext dbContext;
public ImportController(DatabaseContext dbContext)
{
this.dbContext = dbContext;
}
[HttpPost]
public IActionResult ImportData(IFormFile file)
{
var content = string.Empty;
using (var reader = new StreamReader(file.OpenReadStream()))
{
content = reader.ReadToEnd();
}
List<UserModel> userObjects = null;
try
{
userObjects = JsonConvert.DeserializeObject<List<UserModel>>(content);
}
catch
{
return BadRequest();
}
foreach (var user in userObjects)
{
UserModel us = new UserModel
{
Username = user.Username,
Password = user.Password
};
dbContext.User.Add(us);
dbContext.SaveChanges();
}
return Ok();
}
}
Я использую Postman для отправки данных JSON, но каждый раз, когда я пытаюсь это сделать, я получаю следующий ответ:
{"Имя пользователя": ["Ввод неверный."]}
когда я пытаюсь отправить данные JSON как raw-> application / json ИЛИ
{"": ["Ввод неверный."]}
когда я пытаюсь отправить его по форме данных с ключом "file" и файлом test.json в качестве значения.
Не могли бы вы направить меня на правильный путь? Я пытался использовать [FromBody] UserModel user
в качестве параметра моего действия, но это позволяет мне обрабатывать только одну строку JSON.