.NET 把对象序列化为Json字符串,再将内容写入Json文件,并且保存
- 一、声明全局私有变量存储创建的文件夹绝对路径
- 二、创建方法函数
- 三、创建的文件目录实例
- 四、实例
- 4.1、创建一个实例类
- 4.2、进行数据填充
- 4.3、运行之后的文件展示
在实际开发过程中,我们常常需要保存生成的Json数据。因此本文主要介绍了在.NET开发中将对象序列化成JSON字符串并将其写入文件保存至本地,希望对使用该方法的朋友有所帮助。
/// <summary>
/// 创建的文件路径
/// </summary>
private string createPath = "";
/// <summary>
/// 把对象序列化为Json字符串,再将内容写入Json文件,并且保存
/// </summary>
/// <param name="jsonData">需要序列化为Json字符串的对象</param>
/// <param name="filename">保存的Json文件名</param>
public void objToJsonAndWriteJsonFile(object jsonData, string filename)
{string jsonConents = "";string basePath = "/static/";//在上传目录中建立日期目录basePath += DateTime.Now.ToString("yyyy/MM/");//以下两种方法根据需求进行选择#region /// 1、ASP.NET Core使用string webpath = _hostingEnv.WebRootPath;createPath = webpath + basePath;#endregion#region /// 2、ASP.NET WebForm以及ASP.NET MVC使用//basePath = "~" + basePath;//createPath = (basePath.IndexOf("~") > -1) ? System.Web.HttpContext.Current.Server.MapPath(basePath) : basePath;#endregion//判断文件是否存在,不存在则直接进行文件夹的创建if (!Directory.Exists(createPath)){Directory.CreateDirectory(createPath);}string fullPath = createPath + filename + ".json";//文件的全路径//判断需要序列化为Json字符串的对象是否为空if (jsonData != null){//序列化为json时过滤掉NULLJsonSerializerSettings? jsonSetting = new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore };jsonConents = JsonConvert.SerializeObject(jsonData, Formatting.Indented, jsonSetting);}//判断Json字符串内容是否为空if (!string.IsNullOrEmpty(jsonConents)){using (FileStream fs = new FileStream(fullPath, FileMode.OpenOrCreate, System.IO.FileAccess.ReadWrite, FileShare.ReadWrite)){fs.Seek(0, SeekOrigin.Begin);fs.SetLength(0);//如果Json文件中有中文数据,可能会出现乱码的现象,那么需要加上如下代码Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);using (StreamWriter sw = new StreamWriter(fs, Encoding.UTF8)){sw.WriteLine(jsonConents);}}}
}
下图为在.NET Core中的目录实例,在ASP.NET WebForm中则创建在项目文件的根目录中的“static”
public class keywords
{public List<string> IllegalKeywords { get; set; }
}
#region 实例化数据类以及进行数据填充List<keywords> keys = new List<keywords>();
keywords words = new keywords();
words.IllegalKeywords = new List<string>();
for (int i = 0; i < 5; i++)
{string keysdata = "测试" + i;words.IllegalKeywords.Add(keysdata);
}
keys.Add(words);#endregion//进行方法调用
objToJsonAndWriteJsonFile(keys, "Config_NPC");
本文发布于:2024-01-31 17:20:24,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170669282630146.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |