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; } ???????} ???}}
Json文件读写
原文地址:http://www.cnblogs.com/cts0907/p/7502149.html