您的位置:首页 > Web前端 > JavaScript

Json.NET读写Json文件

2012-02-23 21:23 288 查看
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; }
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: