C#json读写

关于Newtonsoft.Json读写

参考了博客https://www.cnblogs.com/zoujinhua/p/10330066.html进行修改,如有侵权请告知。


1:添加Newtonsoft.Json引用,NuGet程序包搜索Json,下载第一个(火箭黑色图标);
2:参考博客进行修改,在外面又添加了一节点。
    public class Root
    {
        /// <summary>
        /// 
        /// </summary>
        public List<json> abc { get; set; }
    }
3:添加新节点
            json js1 = new json();
            parseJson par = new parseJson();

            js1.message = "abc";
            js1.nu = "367847964498";
            js1.ischeck = "1";
            js1.condition = "F00";
            js1.com = "shunfeng";
            js1.status = "200";
            js1.state = "3";
            DataItem abc = new DataItem();
            js1.data = new List<DataItem>();
            abc.time = "2017-09-21 07:02:41";
            abc.location = "";
            abc.ftime = "2017-09-21 07:02:41";
            abc.context = "快件到达 【淄博市桓台田庄速运营业点 】";
            js1.data.Add(abc);
            js1.data.Add(abc);
            js1.data.Add(abc);
4:每次写入在原有节点上添加新节点;
      public Root readJson(string str)
      {
          /*读取整个数据*/
          Root rt = JsonConvert.DeserializeObject<Root>(str);
          return rt;
      }
      
       public void writeJson(string path, ref json js1)
      {
         /*写Json*/
          Root root = new Root();
          JsonSerializer serializer = new JsonSerializer();
          if (!File.Exists(path))
          {
              FileInfo file = new FileInfo(path);
              /*文件不存在则创建*/
              file.Directory.Create();
              root.abc = new List<json>();
          }
          else
          {
              /*读出原有数据*/
              root = readJson(File.ReadAllText(path));
          }
          root.abc.Add(js1);
          /*第一种写入数据*/
          //把模型数据写到文件
          using (StreamWriter sw = new StreamWriter(path))
          {
              serializer.Converters.Add(new JavaScriptDateTimeConverter());
              serializer.NullValueHandling = NullValueHandling.Ignore;
              //构建Json.net的写入流
              JsonWriter writer = new JsonTextWriter(sw);
              serializer.Serialize(writer, root);
              writer.Close();
              sw.Close();
              sw.Dispose();
          }

          /*第二种写入数据*/
          //将要写入的数据序列化
          string json = JsonConvert.SerializeObject(root);
          //把模型数据写到文件
          using (StreamWriter sw = new StreamWriter(path))
          {
              //构建Json.net的写入流
              JsonWriter writer = new JsonTextWriter(sw);
              //把模型数据序列化并写入Json.net的JsonWriter流中
              writer.WriteRaw(json);
              writer.Close();
              sw.Close();
              sw.Dispose();
          }
      }
5:每次写入的Json都是在后面累加,没有格式化,不知道怎么处理

保存的JSON

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值