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(string filePath)
{
    string jsonStr = File.ReadAllText(filePath);

    //反序列化
    var list = new List<T>(JsonConvert.DeserializeObject<List<T>>(jsonStr));

    return list;
}

 使用:

//将JsonToList方法的List<T>中 T 替换成所需要转换的类型
var stu = JsonToList(@"D:\Desktop\test.json");

 

原文地址:http://www.cnblogs.com/lxiamul/p/16922047.html

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长! 2. 分享目的仅供大家学习和交流,请务用于商业用途! 3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入! 4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解! 5. 如有链接无法下载、失效或广告,请联系管理员处理! 6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需! 7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员! 8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载 声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性