Skip to content

simplerjiang/Simplerjiang.ConfigJsonSave

Repository files navigation

Simplerjiang.ConfigJsonSave

NuGet Downloads

一个基于 .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.

Package

NuGet: https://www.nuget.org/packages/Simplerjiang.ConfigJsonSave/

适用场景

适合这类项目:

  • 小型桌面工具
  • 本地配置文件读写
  • 需要简单 JSON 持久化的 .NET 应用
  • 想避免每个项目都重复写一套配置读写代码的场景

核心 API

库的核心能力集中在 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+

Quick Start

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";
}

2. 对象与 JSON 字符串互转

var config = new AppConfig
{
    Name = "StockCopilot",
    RefreshSeconds = 5
};

string json = JsonWorker.Out(config);
AppConfig restored = JsonWorker.Get<AppConfig>(json);

3. 写入和读取配置文件

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 足够少,学习成本低
  • 对本地配置文件场景友好
  • 适合作为业务项目里的基础小工具库

Source

核心实现文件:Simplerjiang.ConfigJsonSave/JsonWorker.cs

如果你正在整理一个历史 .NET 项目,并且希望用最少代码完成本地 JSON 配置读写,这个包会很顺手。

About

A lightweight .NET Standard library for JSON serialization and local config file persistence.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages