目录
Json写入(序列化)
using System.IO;
using System.Text;
/// <summary>
/// 对象转换为json字符串
/// </summary>
/// <param name="obj">需要转换的对象</param>
/// <returns></returns>
public static 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 static 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 static 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");