ibcadmin 发表于 2016-9-20 09:35:32

c#/ASP.NET读取和写入JSON文件

本代码为转载,没有写注释,未经本人测试,仅供学习参考!

需要引用:Newtonsoft.Json.dll 这个需要百度自行下载。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.IO;
using System.Text;
using Newtonsoft.Json;
using com.zjpx.model;
using System.Collections;
using Newtonsoft.Json.Converters;

namespace web
{
   public partial class testJson : System.Web.UI.Page
   {
       protected void Page_Load(object sender, EventArgs e)
       {
         ConfigFileModel cfm = new ConfigFileModel();//实体模型类
         cfm.CreateDate = "2012-02-23";
         cfm.FileName = "test.txt";

         //可以操作集合
         Hashtable ht = new Hashtable();
         ht.Add("hs_name", "alex");
         ht.Add("hs_pwd", "ggg");

         //序列化
         string js1 = JsonConvert.SerializeObject(cfm);
         string js2 = JsonConvert.SerializeObject(ht);
         Response.Write(js1);
         Response.Write("<br/>");
         Response.Write(js2);
         //"{\"FileName\":\"test.txt\",\"CreateDate\":\"2012-02-23\"}"
         //"{\"hs_pwd\":\"ggg\",\"hs_name\":\"alex\"}"

         //反序列化
         ConfigFileModel debc1 = JsonConvert.DeserializeObject<ConfigFileModel>(js1);
         ConfigFileModel debc2 = JsonConvert.DeserializeObject<ConfigFileModel>(js2);

         //找到服务器物理路径
         //string serverAppPath = Request.PhysicalApplicationPath.ToString();
         string serverAppPath = @"d:\";
         //构成配置文件路径
         string con_file_path =@""+ serverAppPath + @"config.json";


         if (!File.Exists(con_file_path))
         {
               File.Create(con_file_path);
         }

       //把模型数据写到文件
         using (StreamWriter sw = new StreamWriter(con_file_path))
         {
               try
               {

                   JsonSerializer serializer = new JsonSerializer();
                   serializer.Converters.Add(new JavaScriptDateTimeConverter());
                   serializer.NullValueHandling = NullValueHandling.Ignore;

                   //构建Json.net的写入流
                   JsonWriter writer = new JsonTextWriter(sw);
                   //把模型数据序列化并写入Json.net的JsonWriter流中
                   serializer.Serialize(writer, cfm);
                   //ser.Serialize(writer, ht);
                   writer.Close();
                   sw.Close();

               }

       }
         catch (Exception ex)
         {
               ex.Message.ToString();
         }

            //读取json文件
            using (StreamReader sr = new StreamReader(con_file_path))
            {
         try
               {
                     JsonSerializer serializer = new JsonSerializer();
                     serializer.Converters.Add(new JavaScriptDateTimeConverter());
                     serializer.NullValueHandling = NullValueHandling.Ignore;

                     //构建Json.net的读取流
                     JsonReader reader = new JsonTextReader(sr);
                     //对读取出的Json.net的reader流进行反序列化,并装载到模型中
                     cfm = serializer.Deserialize<ConfigFileModel>(reader);

                     Response.Write("<br/>");
                     Response.Write(cfm.FileName+", "+cfm.CreateDate);
         }
               catch (Exception ex)
               {
                     ex.Message.ToString();
                  }
            }

      }
    }

    public class ConfigFileModel
    {
      public ConfigFileModel() { }

      string _fileName;

      public string FileName
      {
            get { return _fileName; }
            set { _fileName = value; }
      }
      string _createDate;

      public string CreateDate
      {
            get { return _createDate; }
            set { _createDate = value; }
      }
    }
}

ibcadmin 发表于 2016-9-20 09:35:47

华丽的一顶

IBC-我 发表于 2016-9-20 09:38:22

:victory:,不错, 多发点这一类的
页: [1]
查看完整版本: c#/ASP.NET读取和写入JSON文件