CSV文件读写与JSON操作复习——基于C# WinForms项目

前言

在数据处理和存储中,CSV(Comma-Separated Values,逗号分隔值)文件和JSON(JavaScript Object Notation,JavaScript对象表示法)文件是两种非常常见的格式。CSV文件以其简洁、易读的特点在表格数据存储方面广受欢迎,而JSON文件则以其轻量级、易于人类阅读和编写、同时也易于机器解析和生成的特点,在数据交换和存储方面得到了广泛应用。

今天,我们将通过一个简单的C# WinForms项目,来复习一下CSV文件和JSON文件的读写操作。

项目结构
  1. Form1:主窗体,包含用于输入和显示数据的文本框,以及用于触发CSV和JSON文件读写操作的按钮。
  2. People类:用于存储人员信息的类,包括姓名、年龄、性别和家庭地址。
CSV文件读写

写入CSV文件

写入CSV事件方法中,我们首先将表头(姓名、年龄、性别、家庭地址)和数据(从文本框中获取的用户输入)拼接成字符串,然后使用File.WriteAllLines方法将字符串数组写入CSV文件。注意,这里我们将表头和数据拼接成了两行,但实际上更好的做法是将表头和数据分别处理,以保证CSV文件的格式正确。

private void 写入CSV事件(object sender, EventArgs e)
{
    string[] headers = { "姓名", "年龄", "性别", "家庭地址" };
    string[] datas = { name, age, sex, address };
 
    // 更好的做法是将表头和数据分别写入文件
    // 但为了简化示例,这里我们将它们拼接成两行
    string[] line1 = { string.Join(",", headers), string.Join(",", datas) };
    File.WriteAllLines("学生信息.csv", line1);
    MessageBox.Show("写入成功");
}


读取CSV文件

读取CSV事件方法中,我们使用File.ReadAllLines方法读取CSV文件的所有行,并通过遍历每一行来查找与文本框中输入的姓名匹配的数据。找到匹配的数据后,我们将相应的信息填充到文本框中。

private void 读取CSV事件(object sender, EventArgs e)
{
    string[] lines = File.ReadAllLines("学生信息.csv").ToArray();
    for (int i = 1; i < lines.Length; i++) // 假设第一行是表头,从第二行开始读取数据
    {
        string data = lines[i];
        string[] values = data.Split(',');
        string name = values[0];
        if (textBox1.Text.Equals(name))
        {
            textBox2.Text = values[1];
            textBox3.Text = values[2];
            textBox4.Text = values[3];
            break;
        }
    }
}

JSON文件读写

写入JSON文件

写入Json事件方法中,我们首先创建一个People对象,并将文本框中的信息赋值给该对象的属性。然后,我们将该对象添加到一个List<People>集合中,并使用JsonMapper.ToJson方法将集合转换为JSON字符串。最后,我们使用File.WriteAllText方法将JSON字符串写入文件。

private void 写入Json事件(object sender, EventArgs e)
{
    People people = new People();
    people.Name = name;
    people.Age = age;
    people.Sex = sex;
    people.Address = address;
    List<People> peoples = new List<People>();
    peoples.Add(people);
    string data = JsonMapper.ToJson(peoples);
    File.WriteAllText("data.json", data);
    MessageBox.Show("写入成功");
}


读取JSON文件

读入Json事件方法中,我们使用File.ReadAllText方法读取JSON文件的内容,并使用JsonMapper.ToObject<List<People>>方法将JSON字符串转换为List<People>集合。然后,我们遍历集合来查找与文本框中输入的姓名匹配的对象,并将相应的信息填充到文本框中。

private void 读入Json事件(object sender, EventArgs e)
{
    string data = File.ReadAllText("data.json");
    List<People> peoples = JsonMapper.ToObject<List<People>>(data);
    foreach (People p in peoples)
    {
        if (textBox1.Text.Equals(p.Name))
        {
            textBox2.Text = p.Age;
            textBox3.Text = p.Sex;
            textBox4.Text = p.Address;
            break;
        }
    }
}


文本框内容更新

在每个文本框的TextChanged事件中,我们更新对应的变量(nameagesexaddress),以便在触发CSV或JSON文件的读写操作时,能够使用最新的用户输入。

private void textBox1_TextChanged(object sender, EventArgs e)
{
    name = textBox1.Text;
}
 
private void textBox2_TextChanged(object sender, EventArgs e)
{
    age = textBox2.Text;
}
 
private void textBox3_TextChanged(object sender, EventArgs e)
{
    sex = textBox3.Text;
}
 
private void textBox4_TextChanged(object sender, EventArgs e)
{
    address = textBox4.Text;
}

界面展示


总结

通过这个简单的C# WinForms项目,我们复习了CSV文件和JSON文件的读写操作。在实际开发中,我们可以根据需要选择合适的文件格式来存储和交换数据。同时,也需要注意数据的格式和正确性,以确保数据的准确性和可读性。希望这篇文章对你有所帮助!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值