Json对象数据转换

json使用

JSON采用完全独立于语言的文本格式,使JSON成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成(网络传输速率)。JSON格式取代了xml给网络传输带来了很大的便利,但是却没有了xml的一目了然,尤其是json数据很长的时候,我们会陷入繁琐复杂的数据节点查找中

json读写代码

 //文件的基本功能  增 删 改 查 创建文件  删除文件
    public class JsonOperation
    {
        //对象转string  string 转对象 
        public  void CreateFIle(string path)
        {
            if (File.Exists(path))
            {
                Console.WriteLine("存在这个文件,不需要生成");
                return;
            }
            using (FileStream fs = File.Create(path))
            {
                fs.Flush();
                fs.Close();
            }
        }
        /// <summary>
        /// 通过文件路径把对象写入json文件中
        /// </summary>
        /// <param name="path"></param>
        /// <param name="obj"></param>
        public void WriteObjectToJson(string path,object obj)
        {
            if (!File.Exists(path))
            {
                Console.WriteLine("不存在这个文件,需要生成");
                return;
            }
            try
            {
                using (FileStream fs = File.Open(path, FileMode.Open))
                {
                    string jsonStr = JsonConvert.SerializeObject(obj, Formatting.Indented);
                    byte[] bytes = Encoding.UTF8.GetBytes(jsonStr);
                    fs.Write(bytes, 0, bytes.Length);
                    fs.Flush();
                    fs.Close();
                }
            }
            catch (Exception)
            {

                throw;
            }
           
        }
        /// <summary>
        /// 通过路径读取文件中的数据并转化成对象
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="path"></param>
        /// <returns></returns>
        public T ReadObjectToJson<T>(string path)
        {
            T obj = default(T);
            if (!File.Exists(path))
            {
                Console.WriteLine("不存在这个文件,需要生成");
                return obj;
            }
            try
            {
                using (FileStream fs = File.Open(path, FileMode.Open))
                {
                    byte[] bytes = new byte[fs.Length];
                    fs.Read(bytes,0, bytes.Length);
                    string readStr = Encoding.UTF8.GetString(bytes);
                    obj = JsonConvert.DeserializeObject<T>(readStr);
                    fs.Flush();
                    fs.Close();
                }
            }
            catch (Exception)
            {
                throw;
            }
            return obj;
        }
    }
展开阅读全文
©️2020 CSDN 皮肤主题: 1024 设计师: 上身试试 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值