Json.NET读写Json文件(转)
2015-12-28 09:52
513 查看
Json文件的写入读取
采用的Json.NET提供的API。
http://james.newtonking.com/projects/json-net.aspx
http://www.codeplex.com/json/
以下是demo代码
[csharp] view
plaincopy
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; }
}
}
}
采用的Json.NET提供的API。
http://james.newtonking.com/projects/json-net.aspx
http://www.codeplex.com/json/
以下是demo代码
[csharp] view
plaincopy
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; }
}
}
}
相关文章推荐
- 你应该知道的25道Javascript面试题
- js运动应用实例解析
- 基于JavaScript将表单序列化类型的数据转化成对象的处理(允许对象中包含对象)
- 关于js匿名函数的那些事
- 基于JavaScript实现网页倒计时自动跳转代码
- json_encode 的第二个参数详解
- 那些用JavaScript写的操作系统
- 给Extjs的GridPanel增加“合计”行(转)
- fastJson API
- JavaScript 的self 和 this 使用小结
- ExtJS 4.2:Sencha Cmd 介绍
- Hive 使用解析Json 文件格式
- js添加、修改url参数
- 如何在Hive中使用Json格式数据
- 你应该知道的25道Javascript面试题
- js点击其他地方
- javascript Set data structures
- 使用eval解析JSON对象
- 目录视图摘要视图订阅 基于Extjs开发不允许为空的文本框提示及相应的验证错误提示(转)
- js时间戳转为日期格式的方法