📜  从文本文件中解析对象c#(1)

📅  最后修改于: 2023-12-03 15:21:59.662000             🧑  作者: Mango

从文本文件中解析对象 C#

在 C# 开发中,有时需要从文本文件中读取数据并转换为对象,进行进一步的操作。本文将介绍 C# 中实现这一功能的方法及示例代码。

使用 StreamReader 和 JsonSerializer

C# 中自带了 StreamReader 和 JsonSerializer 类,可以使用它们来从文件中读取 JSON 格式的数据,并转换为指定类型的对象。

首先,需要引入 System.IOSystem.Text.Json 命名空间:

using System.IO;
using System.Text.Json;

接着,通过 StreamReader 类读取文件,使用 JsonSerializer 类将 JSON 格式的数据转换为对象:

// 读取文件
using StreamReader streamReader = File.OpenText("data.json");
string jsonString = streamReader.ReadToEnd();

// 将 JSON 格式的数据转换为对象
MyObject myObject = JsonSerializer.Deserialize<MyObject>(jsonString);

其中,MyObject 是需要转换的类型,例如:

public class MyObject
{
    public int Id { get; set; }
    public string Name { get; set; }
}
示例代码

下面是一个完整的示例代码,将从 data.json 文件中读取 JSON 格式的数据,并转换为 MyObject 类型的对象:

using System;
using System.IO;
using System.Text.Json;

namespace ParseObjectFromFile
{
    class Program
    {
        static void Main(string[] args)
        {
            try
            {
                // 读取文件
                using StreamReader streamReader = File.OpenText("data.json");
                string jsonString = streamReader.ReadToEnd();

                // 将 JSON 格式的数据转换为对象
                MyObject myObject = JsonSerializer.Deserialize<MyObject>(jsonString);

                // 输出结果
                Console.WriteLine($"Id: {myObject.Id}");
                Console.WriteLine($"Name: {myObject.Name}");
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
        }
    }

    public class MyObject
    {
        public int Id { get; set; }
        public string Name { get; set; }
    }
}
注意事项
  • 读取文件时需要指定文件的完整路径,或者将文件放到程序的运行目录下。
  • JSON 格式的数据中,属性名要与对象中的属性名相匹配,否则转换会失败。
  • 转换失败时会抛出异常,需要进行处理。