C# Json文件写入、读取 | Json文件序列化、反序列化
Json写入(序列化)
using System.IO; using System.Text; /// <summary> /// 对象转换为json字符串 /// </summary> /// <param name="obj">需要转换的对象</param> /// <returns></returns> public string ObjectToJson(object obj) { var strJson = ""; DataContractJsonSerializer json = new DataContractJsonSerializer(obj.GetType()); //序列化 using (MemoryStream stream = new()) { json.WriteObject(stream, obj); strJson = Encoding.UTF8.GetString(stream.ToArray()); } return strJson; } /// <summary> /// 将序列化的json字符串内容写入json文件 /// </summary> /// <param name="path">路径</param> /// <param name="jsonConents">Json内容</param> private void WriteJsonFile(string path, string jsonConents) { File.WriteAllText(path, jsonConents, Encoding.UTF8); }
使用:
public class Student { public int Id { get; set; } public string Name { get; set; } public string Sex { get; set; } } //需要写入Json文件中的数据集合 List<Student> students = new List<Student>(); students.Add(new Student { Id = 1 ,Name="111",Sex="男"}); students.Add(new Student { Id = 2 ,Name="222",Sex="男"}); students.Add(new Student { Id = 3 ,Name="333",Sex="女"}); students.Add(new Student { Id = 4 ,Name="444",Sex="男"}); students.Add(new Student { Id = 5 ,Name="555",Sex="男"}); //转为Json字符串 string text = ObjectToJson(students);//调用写入方法 WriteJsonFile(@"D:\Desktop\test.json", text);
Json文件读取(反序列化)
添加“ Newtonsoft.Json ”程序安装包
/// <summary> /// 反序列化 /// </summary> /// <param name="filePath">文件路径</param> /// <returns></returns> private List<T> JsonToList<T>(string filePath) { string jsonStr = File.ReadAllText(filePath); //反序列化 var list = new List<T>(JsonConvert.DeserializeObject<List<T>>(jsonStr)); return list; }
使用:
var stu = JsonToList<Student>(@"D:\Desktop\test.json");
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本