json配置文件

using System;
using System.IO;
using System.Windows.Forms;
using Newtonsoft.Json;

namespace WinFormsApp21
{
//配置类

public partial class Form1 : Form
{
//定义配置文件在哪里:就在 exe 运行的文件夹里,名字叫 config.json
private readonly string configPath = Path.Combine(Application.StartupPath, "config.json");
//配置类和窗体关联的地方, 准备一个盒子,用来装 “主题、音量、是否自动启动” 这些设置。
private AppConfig config;
public Form1()
{
InitializeComponent();
}

private void Form1_Load(object sender, EventArgs e)
{
LoadConfig();

}
private void LoadConfig()
{
try
{
//开始加载配置,万一出错了别崩,给我弹个提示。
if (File.Exists(configPath))
{
//先看看:配置文件存在吗?

//读取 JSON 文件里的文字
string json = File.ReadAllText(configPath);
//把 JSON 文字 → 转成配置对象
config = JsonConvert.DeserializeObject(json);
MessageBox.Show("配置加载成功");
//存在 → 把文件里的文字读出来 → 转成程序能看懂的设置。

}
else
{

//文件不存在 创建默认配置 并保存
config = new AppConfig();
SaveConfig();
MessageBox.Show("首次运行 自己自动创建配置文件");
//不存在 → 新建一套默认设置 → 保存成文件 → 告诉你:文件我帮你建好了!

}
}
catch (Exception ex)
{

// ✅ 捕获所有异常,避免程序崩溃,兜底用默认配置
MessageBox.Show($"加载配置失败:{ex.Message}\n将使用默认配置", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
config = new AppConfig();
// 万一读取出错 → 弹窗告诉你原因 → 自动用默认设置,不崩!

}

}

private void SaveConfig()
{
try
{
//把配置对象 → 转成 JSON 文字
string json = JsonConvert.SerializeObject(config, Formatting.Indented);
//把 JSON 文字写入文件
File.WriteAllText(configPath, json);
//保存配置:
//把设置转成 JSON 格式的文字 → 写入 config.json 文件。
}
catch (Exception ex)
{

MessageBox.Show($"保存配置失败:{ex.Message}", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);

}

}

private void btnSave_Click_Click(object sender, EventArgs e)
{
config.主题 = "神色";
config.音量 = 60;
config.自动启动 = true;

SaveConfig();
MessageBox.Show("保存成功");
}
}

public class AppConfig
{

public string 主题 { get; set; } = "浅色";
public int 音量 { get; set; } = 100;
public bool 自动启动 { get; set; } = false;

}
}

posted @ 2026-04-10 00:36  菜鸟的奋斗军  阅读(28)  评论(0)    收藏  举报