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

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

}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: