.NET 把对象序列化为Json字符串,再将内容写入Json文件,并且保存

阅读: 评论:0

.NET 把对象序列化为Json字符串,再将内容写入Json文件,并且保存

.NET 把对象序列化为Json字符串,再将内容写入Json文件,并且保存

.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”

四、实例

4.1、创建一个实例类

public class keywords
{public List<string> IllegalKeywords { get; set; }
}

4.2、进行数据填充

#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");

4.3、运行之后的文件展示

本文发布于:2024-01-31 17:20:24,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170669282630146.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:字符串   再将   序列   对象   文件
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23