首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >流编写器没有在webapi中写入JSON文件

流编写器没有在webapi中写入JSON文件
EN

Stack Overflow用户
提问于 2022-09-05 07:45:36
回答 2查看 68关注 0票数 2

我试图使用webapi在JSON文件中写入数据,但是流编写器没有将数据写入文件。

JSON档案:

代码语言:javascript
复制
{
"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"
 }
]
}

班级

代码语言:javascript
复制
     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方法。

代码语言:javascript
复制
    [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文件中。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-09-05 13:31:44

尝尝这个

代码语言:javascript
复制
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);
}
票数 0
EN

Stack Overflow用户

发布于 2022-09-05 09:46:07

尝试下面的代码:

代码语言:javascript
复制
        [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();
}

结果:

更新更多图片,在现有JSON文件中添加数据.

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73606054

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档