加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Json.NET读写Json文件

发布时间:2020-12-16 19:27:47 所属栏目:百科 来源:网络整理
导读:Json文件的写入读取 采用的Json.NET提供的API。 http://james.newtonking.com/projects/json-net.aspx http://www.codeplex.com/json/ 以下是demo代码 using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.

Json文件的写入读取

采用的Json.NET提供的API。

http://james.newtonking.com/projects/json-net.aspx
http://www.codeplex.com/json/


以下是demo代码

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; }
        }
    }
}


(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读