公司项目需要用到JSON来存储数据,于是使用了JSON.NET,记录一下,方便下一次使用:
public struct DataStructInfo
{
/// <summary>
/// 字段名称
/// </summary>
public string Name;
/// <summary>
/// 字段标签
/// </summary>
public string Title;
/// <summary>
/// 字段类型
/// </summary>
public DataTypes Type;
/// <summary>
/// 字段长度
/// </summary>
public int Length;
/// <summary>
/// 字段初始值
/// </summary>
public string Default;
/// <summary>
/// 字段是否为空
/// </summary>
public bool IsNull;
/// <summary>
/// 字段是否属于检索字段
/// </summary>
public bool IsIndex;
/// <summary>
/// 字段显示前缀
/// </summary>
public string Prefix;
/// <summary>
/// 字段显示后缀
/// </summary>
public string Suffix;
public DataStructInfo(string name, string title, DataTypes type, int length, string def, bool isNull, bool isIndex,
string prefix, string suffix)
{
Name = name;
Title = title;
Type = type;
Length = length;
Default = def;
IsNull = isNull;
IsIndex = isIndex;
Prefix = prefix;
Suffix = suffix;
}
}
public class DataStructLogic
{
/// <summary>
/// 生成结构文件
/// </summary>
/// <param name="dataStructs">结构文件字段说明</param>
/// <param name="filePath">结构文件存储路径</param>
/// <returns></returns>
public static bool SaveStruct(List<DataStructInfo> dataStructs, string filePath)
{
if (dataStructs != null && !string.IsNullOrEmpty(filePath))
{
var jsonObjs = JArray.FromObject(dataStructs);
var jsonStr = jsonObjs.ToString().Replace("\r\n", "").Replace(" ", "");
StreamWriter SW;
SW = File.CreateText(filePath + "\\struct.json");
SW.WriteLine(jsonStr);
SW.Close();
return true;
}
return false;
}
/// <summary>
/// 读取结构文件信息
/// </summary>
/// <param name="filePath">文件存储路径</param>
/// <returns></returns>
public static List<DataStructInfo> ReadStruct(string filePath)
{
if (!string.IsNullOrEmpty(filePath))
{
var jsonStr = File.ReadAllText(filePath + "\\struct.json");
JArray jsonObjs = JArray.Parse(jsonStr);
List<DataStructInfo> dataStructs = jsonObjs.ToObject<List<DataStructInfo>>();
//List<DataStructInfo> dataStructs = JsonConvert.DeserializeObject<List<DataStructInfo>>(jsonStr);
return dataStructs;
}
return null;
}