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