我嘗試使用 webapi 在 JSON 檔案中寫入資料,但流撰寫器沒有將資料寫入檔案。
JSON檔案:
{
"Students": [
{
"id": 1,
"name": "Ravi",
"department": "IT"
},
{
"id": 2,
"name": "Raj",
"department": "hr"
},
{
"id": 3,
"name": "avi",
"department": "it"
},
{
"id": 4,
"name": "rome",
"department": "HR"
},
{
"id":5,
"name": "virat",
"department": "HR"
},
{
"id":6 ,
"name": "Tushar",
"department": "RM"
}
]
}
班級
public class Student
{
public int Id { get; set; }
public string Name { get; set; }
public string Department { get; set; }
}
public class Students
{
public List<Student> students { get; set; }
}
Api 控制器:用于將資料寫入 json 檔案的 [HttpPost] 方法。
[Route("api/[controller]")]
[ApiController]
public class StudentsController : ControllerBase
{
[HttpPost]
public IActionResult Add(Students _Student)
{
using (var fs = new FileStream("C:/Users/tanmay_pawar/source/repos/CRUDAPI/CRUDAPI/people.json", FileMode.Append))
using (var sw = new StreamWriter(fs))
{
sw.WriteLine(_Student);
}
}
_Student 收到的資料未添加到 json 檔案中。
uj5u.com熱心網友回復:
嘗試這個
public IActionResult Add(Students _Student)
{
if(_Student==null || _Student.students==null) return null;
var filePath = @"C:\Users\....\..json";
var json = File.ReadAllText(filePath);
Students students = JsonConvert.DeserializeObject<Students>(json);
students.students.AddRange(_Student.students);
json=JsonConvert.SerializeObject(students);
File.WriteAllText(filePath, json);
}
uj5u.com熱心網友回復:
試試下面的代碼:
[HttpPost]
public IActionResult Add(Students _Student)
{
string jsonresult = JsonConvert.SerializeObject(_Student);
string path = @"C:\c\people.json";
using(var tw=new StreamWriter(path,true))
{
tw.WriteLine(jsonresult.ToString());
tw.Close();
}
return Ok();
}
結果:


轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/503936.html
標籤:json asp.net 核心 asp.net-web-api 流作家
上一篇:了解不同位ISA的跳轉地址計算
