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
以下是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; } } } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- ruby-on-rails – Rails / Active支持“to_sentence”已弃用
- Logback.xml模板
- DBLINK 9i 连接11G 错误信息ora-01017,ora-02063的解决方法
- 处理Oracle的分布式事务故障
- swift – 类型UIViewController的值在Xcode 7更新后没有成员
- HBuild Hybrid App开发开发(十二)微信/支付宝支付
- Webpack + React学习笔记(一) —— 准备
- c# – 在WPF中将ResourceDictionary应用于Frame中的Pages
- SPI_FLASH实现bootloader
- ruby-on-rails – 旧轨道应用程序的奇怪导轨错误“权限被拒