Json.NET读写Json文件(转)

来源:互联网 发布:网络推广思维导图 编辑:程序博客网 时间:2024/05/20 13:40

Json文件的写入读取

采用的Json.NET提供的API。

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


以下是demo代码

[csharp] view plaincopy
  1. using System;  
  2. using System.Collections.Generic;  
  3. using System.Linq;  
  4. using System.Web;  
  5. using System.Web.UI;  
  6. using System.Web.UI.WebControls;  
  7. using System.IO;  
  8. using System.Text;  
  9. using Newtonsoft.Json;  
  10. using com.zjpx.model;  
  11. using System.Collections;  
  12. using Newtonsoft.Json.Converters;  
  13.   
  14. namespace web  
  15. {  
  16.     public partial class testJson : System.Web.UI.Page  
  17.     {  
  18.         protected void Page_Load(object sender, EventArgs e)  
  19.         {  
  20.             ConfigFileModel cfm = new ConfigFileModel();  //实体模型类  
  21.             cfm.CreateDate = "2012-02-23";  
  22.             cfm.FileName = "test.txt";  
  23.   
  24.             //可以操作集合  
  25.             Hashtable ht = new Hashtable();  
  26.             ht.Add("hs_name""alex");  
  27.             ht.Add("hs_pwd""ggg");  
  28.   
  29.             //序列化  
  30.             string js1 = JsonConvert.SerializeObject(cfm);  
  31.             string js2 = JsonConvert.SerializeObject(ht);  
  32.             Response.Write(js1);  
  33.             Response.Write("<br/>");  
  34.             Response.Write(js2);  
  35.             //"{\"FileName\":\"test.txt\",\"CreateDate\":\"2012-02-23\"}"  
  36.             //"{\"hs_pwd\":\"ggg\",\"hs_name\":\"alex\"}"  
  37.   
  38.             //反序列化  
  39.             ConfigFileModel debc1 = JsonConvert.DeserializeObject<ConfigFileModel>(js1);  
  40.             ConfigFileModel debc2 = JsonConvert.DeserializeObject<ConfigFileModel>(js2);  
  41.   
  42.             //找到服务器物理路径  
  43.             //string serverAppPath = Request.PhysicalApplicationPath.ToString();  
  44.             string serverAppPath = @"d:\";  
  45.             //构成配置文件路径  
  46.             string con_file_path =@""+ serverAppPath + @"config.json";  
  47.   
  48.   
  49.             if (!File.Exists(con_file_path))  
  50.             {  
  51.                 File.Create(con_file_path);  
  52.             }  
  53.   
  54.         //把模型数据写到文件  
  55.             using (StreamWriter sw = new StreamWriter(con_file_path))  
  56.             {  
  57.                 try  
  58.                 {  
  59.   
  60.                     JsonSerializer serializer = new JsonSerializer();  
  61.                     serializer.Converters.Add(new JavaScriptDateTimeConverter());  
  62.                     serializer.NullValueHandling = NullValueHandling.Ignore;  
  63.   
  64.                     //构建Json.net的写入流  
  65.                     JsonWriter writer = new JsonTextWriter(sw);  
  66.                     //把模型数据序列化并写入Json.net的JsonWriter流中  
  67.                     serializer.Serialize(writer, cfm);  
  68.                     //ser.Serialize(writer, ht);  
  69.                     writer.Close();  
  70.                     sw.Close();  
  71.   
  72.                 }  
  73.   
  74.         }  
  75.             catch (Exception ex)  
  76.             {  
  77.                 ex.Message.ToString();  
  78.             }  
  79.   
  80.              //读取json文件  
  81.              using (StreamReader sr = new StreamReader(con_file_path))  
  82.              {  
  83.           try  
  84.                   {  
  85.                       JsonSerializer serializer = new JsonSerializer();  
  86.                       serializer.Converters.Add(new JavaScriptDateTimeConverter());  
  87.                       serializer.NullValueHandling = NullValueHandling.Ignore;  
  88.   
  89.                       //构建Json.net的读取流  
  90.                       JsonReader reader = new JsonTextReader(sr);  
  91.                       //对读取出的Json.net的reader流进行反序列化,并装载到模型中  
  92.                       cfm = serializer.Deserialize<ConfigFileModel>(reader);  
  93.   
  94.                       Response.Write("<br/>");  
  95.                       Response.Write(cfm.FileName+", "+cfm.CreateDate);  
  96.           }  
  97.                   catch (Exception ex)  
  98.                   {  
  99.                       ex.Message.ToString();  
  100.                   }  
  101.               }  
  102.   
  103.         }  
  104.     }  
  105.   
  106.     public class ConfigFileModel  
  107.     {  
  108.         public ConfigFileModel() { }  
  109.   
  110.         string _fileName;  
  111.   
  112.         public string FileName  
  113.         {  
  114.             get { return _fileName; }  
  115.             set { _fileName = value; }  
  116.         }  
  117.         string _createDate;  
  118.   
  119.         public string CreateDate  
  120.         {  
  121.             get { return _createDate; }  
  122.             set { _createDate = value; }  
  123.         }  
  124.     }  
  125. }  
0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 儿童低烧37度1怎么办 小孩发烧一会冷一会热怎么办 月子里得的风湿怎么办 腰窝中间凸起肉怎么办 线雕后一个月脸发红肿胀怎么办 雷诺氏病手指僵硬疼怎么办 哺乳妈妈吃咸了怎么办 吃流产药哺乳了怎么办 坐月子吃咸了怎么办啊 拔罐放血后头晕怎么办 e道航界面不动怎么办 微信必须打开位置权限怎么办 魅族sim卡未启用怎么办 苹果6sgps信号弱怎么办 苹果5s4g网络慢怎么办 苹果5s上网很慢怎么办 手机一体机死机关不了机怎么办 联想一体机关不了机怎么办 纸巾盒的吸盘老化了怎么办 粘的挂钩老掉怎么办 车载手机支架吸盘吸不住怎么办 吸盘吸不住怎么办才好? 行车记录仪吸盘吸不住怎么办 小米儿童手表二维码丢了怎么办 艾蔻手表二维码丢失了怎么办 玩具直升机遥控器坏了怎么办 玩具飞机遥控器坏了怎么办 玩具无人机遥控器坏了怎么办 玩具遥控车遥控器坏了怎么办 用遥控器关电视后打不开怎么办 汽车遥控器按键坏了怎么办 用遥控器关了电视打不开怎么办 遥控器一个按键坏了怎么办 电视用遥控器关的打不开怎么办 电动车遥控器按键坏了怎么办 海尔空调遥控器按键坏了怎么办 汽车手机支架吸盘吸不住怎么办 车载手机支架吸盘坏了怎么办 假牙的吸盘坏了怎么办 燃气费用一直未交怎么办 凌度gps模块无法定位怎么办?