一个基于 .NET Standard 2.0 的轻量 JSON 配置读写类库,用来简化:
- 对象与 JSON 字符串之间的转换
- 对象与本地配置文件之间的读写
- 配置文件缺失或损坏时的默认值回退
English summary: a lightweight JSON helper library for serializing objects, reading and writing config files, and recovering from missing or invalid config data.
NuGet: https://www.nuget.org/packages/Simplerjiang.ConfigJsonSave/
适合这类项目:
- 小型桌面工具
- 本地配置文件读写
- 需要简单 JSON 持久化的 .NET 应用
- 想避免每个项目都重复写一套配置读写代码的场景
库的核心能力集中在 JsonWorker:
Get<T>(string jsonString):JSON 字符串转对象Out<T>(T model):对象转 JSON 字符串Write<T>(T data, string path):将对象写入指定文件Read<T>(string path):从指定文件读取对象
从源码实现看,这个类还包含两个很实用的行为:
- 文件级锁:避免多个线程同时读写时的冲突
- 默认回退:当文件不存在、无权限、或读取失败时,返回
new T(),并尝试写入默认文件
netstandard2.0- 适用 .NET Core 2.0+
- 适用 .NET Framework 4.6.1+
using System.Runtime.Serialization;
[DataContract]
public class AppConfig
{
[DataMember]
public string Name { get; set; } = "demo";
[DataMember]
public int RefreshSeconds { get; set; } = 30;
[IgnoreDataMember]
public string RuntimeOnlyValue { get; set; } = "ignore me";
}var config = new AppConfig
{
Name = "StockCopilot",
RefreshSeconds = 5
};
string json = JsonWorker.Out(config);
AppConfig restored = JsonWorker.Get<AppConfig>(json);using Simplerjiang.ConfigJsonSave;
var path = Path.Combine(Environment.CurrentDirectory, "appsettings.local.json");
var config = new AppConfig
{
Name = "local-tool",
RefreshSeconds = 10
};
JsonWorker.Write(config, path);
AppConfig loaded = JsonWorker.Read<AppConfig>(path);这个类库追求的是 简单、直接、够用:
- 不引入复杂配置系统
- 保持 API 足够少,学习成本低
- 对本地配置文件场景友好
- 适合作为业务项目里的基础小工具库
核心实现文件:Simplerjiang.ConfigJsonSave/JsonWorker.cs
如果你正在整理一个历史 .NET 项目,并且希望用最少代码完成本地 JSON 配置读写,这个包会很顺手。