马上加入IBC程序猿 各种源码随意下,各种教程随便看! 注册 每日签到 加入编程讨论群

C#教程 ASP.NET教程 C#视频教程程序源码享受不尽 C#技术求助 ASP.NET技术求助

【源码下载】 社群合作 申请版主 程序开发 【远程协助】 每天乐一乐 每日签到 【承接外包项目】 面试-葵花宝典下载

官方一群:

官方二群:

c#/ASP.NET读取和写入JSON文件

[复制链接]
查看8219 | 回复2 | 2016-9-20 09:35:32 | 显示全部楼层 |阅读模式
本代码为转载,没有写注释,未经本人测试,仅供学习参考!

需要引用:Newtonsoft.Json.dll 这个需要百度自行下载。
[C#] 纯文本查看 复制代码
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; }  
        }  
    }  
}  

C#论坛 www.ibcibc.com IBC编程社区
C#
C#论坛
IBC编程社区
ibcadmin | 2016-9-20 09:35:47 | 显示全部楼层
华丽的一顶
C#论坛 www.ibcibc.com IBC编程社区
C#
C#论坛
IBC编程社区
IBC-我 | 2016-9-20 09:38:22 | 显示全部楼层
,  不错, 多发点这一类的
*滑块验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则