gpt4 book ai didi

c# - 如何插入json文件而不删除以前的数据?

转载 作者:行者123 更新时间:2023-12-03 21:14:42 24 4
gpt4 key购买 nike

我将数据插入到 .json 文件中。我的插入工作正常,但有一个问题 - 当我插入新数据时,文件中以前的数据将被删除。我该如何处理?另外,我需要它的格式为,因为我需要查询它:

[
{
"Rollnumber": 3,
"StudentName": "Tapas"
},
{
"Rollnumber": 4,
"StudentName": "Papas"
}
]

当我将数据作为 list.ToArray() 传递时(这将是代码示例中的 _data),我得到 [] 括号,但仅限于 rollnumber = 3 的第一个数据。这是我到目前为止的代码:

private void AddStudent()
{
Student objStudent = new Student();
objStudent.Rollnumber = 3;
objStudent.StudentName = "Tapas";


/* List<Student> _data = new List<Student>();
_data.Add(new Student()
{
Rollnumber = 4,
StudentName = "Papas"
});
*/

string jsonData = JsonConvert.SerializeObject(objStudent, Formatting.Indented);
System.IO.File.WriteAllText(jsonFileS, jsonData);
}

我也尝试过使用StreamWritter,但我做不到。

最佳答案

  1. 检索包含 JSON 的源文件。
  2. 从源文件中读取文本内容(JSON 数据)。
  3. 将 JSON 数据反序列化为学生对象列表。
  4. 添加新学生名单。
  5. 序列化学生列表,您将获得 JSON 数据字符串作为该方法的返回值。
  6. 将 JSON 字符串保存到源文件。

这里是示例代码:

var file = await ApplicationData.Current.LocalFolder.GetFileAsync(fileName);
var jsonString = await FileIO.ReadTextAsync(file);
var studentList = JsonConvert.DeserializeObject<List<Student>>(jsonString);
var newStudent = new Student();
newStudent.Rollnumber = 2;
newStudent.StudentName = "Abcd";
studentList.Add(newStudent);
var updatedJsonString = JsonConvert.SerializeObject(studentList);
await FileIO.WriteTextAsync(file, updatedJsonString);

关于c# - 如何插入json文件而不删除以前的数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52457717/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com