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 – 旧轨道应用程序的奇怪导轨错误“权限被拒
