Json.NET读取和写入Json文件


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

  • 免责声明!

    本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



     
    粤ICP备18138465号  © 2018-2025 CODEPRJ.COM