1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Web;
  5. using System.Web.UI;
  6. using System.Web.UI.WebControls;
  7. using System.IO;
  8. using System.Text;
  9. using Newtonsoft.Json;
  10. using com.zjpx.model;
  11. using System.Collections;
  12. using Newtonsoft.Json.Converters;
  13. namespace web
  14. {
  15. public partial class testJson : System.Web.UI.Page
  16. {
  17. protected void Page_Load(object sender, EventArgs e)
  18. {
  19. ConfigFileModel cfm = new ConfigFileModel();  //实体模型类
  20. cfm.CreateDate = "2012-02-23";
  21. cfm.FileName = "test.txt";
  22. //可以操作集合
  23. Hashtable ht = new Hashtable();
  24. ht.Add("hs_name", "alex");
  25. ht.Add("hs_pwd", "ggg");
  26. //序列化
  27. string js1 = JsonConvert.SerializeObject(cfm);
  28. string js2 = JsonConvert.SerializeObject(ht);
  29. Response.Write(js1);
  30. Response.Write("<br/>");
  31. Response.Write(js2);
  32. //"{\"FileName\":\"test.txt\",\"CreateDate\":\"2012-02-23\"}"
  33. //"{\"hs_pwd\":\"ggg\",\"hs_name\":\"alex\"}"
  34. //反序列化
  35. ConfigFileModel debc1 = JsonConvert.DeserializeObject<ConfigFileModel>(js1);
  36. ConfigFileModel debc2 = JsonConvert.DeserializeObject<ConfigFileModel>(js2);
  37. //找到服务器物理路径
  38. //string serverAppPath = Request.PhysicalApplicationPath.ToString();
  39. string serverAppPath = @"d:\";
  40. //构成配置文件路径
  41. string con_file_path =@""+ serverAppPath + @"config.json";
  42. if (!File.Exists(con_file_path))
  43. {
  44. File.Create(con_file_path);
  45. }
  46. //把模型数据写到文件
  47. using (StreamWriter sw = new StreamWriter(con_file_path))
  48. {
  49. try
  50. {
  51. JsonSerializer serializer = new JsonSerializer();
  52. serializer.Converters.Add(new JavaScriptDateTimeConverter());
  53. serializer.NullValueHandling = NullValueHandling.Ignore;
  54. //构建Json.net的写入流
  55. JsonWriter writer = new JsonTextWriter(sw);
  56. //把模型数据序列化并写入Json.net的JsonWriter流中
  57. serializer.Serialize(writer, cfm);
  58. //ser.Serialize(writer, ht);
  59. writer.Close();
  60. sw.Close();
  61. }
  62. }
  63. catch (Exception ex)
  64. {
  65. ex.Message.ToString();
  66. }
  67. //读取json文件
  68. using (StreamReader sr = new StreamReader(con_file_path))
  69. {
  70. try
  71. {
  72. JsonSerializer serializer = new JsonSerializer();
  73. serializer.Converters.Add(new JavaScriptDateTimeConverter());
  74. serializer.NullValueHandling = NullValueHandling.Ignore;
  75. //构建Json.net的读取流
  76. JsonReader reader = new JsonTextReader(sr);
  77. //对读取出的Json.net的reader流进行反序列化,并装载到模型中
  78. cfm = serializer.Deserialize<ConfigFileModel>(reader);
  79. Response.Write("<br/>");
  80. Response.Write(cfm.FileName+", "+cfm.CreateDate);
  81. }
  82. catch (Exception ex)
  83. {
  84. ex.Message.ToString();
  85. }
  86. }
  87. }
  88. }
  89. public class ConfigFileModel
  90. {
  91. public ConfigFileModel() { }
  92. string _fileName;
  93. public string FileName
  94. {
  95. get { return _fileName; }
  96. set { _fileName = value; }
  97. }
  98. string _createDate;
  99. public string CreateDate
  100. {
  101. get { return _createDate; }
  102. set { _createDate = value; }
  103. }
  104. }
  105. }

Json.NET读取和写入Json文件的更多相关文章

  1. python读取并写入mat文件

    用matlab生成一个示例mat文件: clear;clc matrix1 = magic(5); matrix2 = magic(6); save matData.mat 用python3读取并写入 ...

  2. Asp.net读取和写入txt文件方法(实例)!

    Asp.NET读取和写入txt文件方法(实例)! [程序第一行的引入命名空间文件 - 参考] System; using System.Collections; using System.Config ...

  3. java读取数据写入txt文件并将读取txt文件写入另外一个表

    package com.xsw.test; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.F ...

  4. python读取和写入csv文件

    读取csv文件: def readCsv(): rows=[] with file(r'E:\py\py01\Data\system.csv','rb') as f: reads=csv.reader ...

  5. C#读取和写入XML文件

    关于xml是属于一个比较重要的东西,在平时开发的过程中,这块内容最主要的是要掌握XML内容的读取和写入操作. 一.什么是XML? XML 指可扩展标记语言(EXtensible Markup Lang ...

  6. python之读取和写入csv文件

    写入csv文件源码: #输出数据写入CSV文件 import csv data = [ ("Mike", "male", 24), ("Lee&quo ...

  7. php下载文件,解压文件,读取并写入新文件

    以下代码都是本人在工作中遇到的问题,并完成的具体代码和注释,不多说,直接上代码: <?php      //组织链接      $dataurl = "http://118.194.2 ...

  8. C语言实现<读取>和<写入> *.ini文件(转)

    原地址:https://blog.csdn.net/niha1993825jian/article/details/41086403 #include <stdio.h> #include ...

  9. Java——读取和写入txt文件

    package com.java.test.a; import java.io.BufferedReader; import java.io.BufferedWriter; import java.i ...

随机推荐

  1. 谈谈关键字strictfp

     Java语言中的其中一个设计目标是可移植性.无论在哪个虚拟机上运行,同一个计算应该得到同样的结果.对于浮点数的算术运算,实现这样的可移植性是相当困难的.double 类型使用 64 位存储一个 do ...

  2. Dnsmasq安装与配置

    默认的情况下,我们平时上网用的本地DNS服务器都是使用电信或者联通的,但是这样也导致了不少的问题,首当其冲的就是上网时经常莫名地弹出广告,或者莫名的流量被消耗掉导致网速变慢.其次是部分网站域名不能正常 ...

  3. 深入理解javascript作用域系列第五篇——一张图理解执行环境和作用域

    × 目录 [1]图示 [2]概念 [3]说明[4]总结 前面的话 对于执行环境(execution context)和作用域(scope)并不容易区分,甚至很多人认为它们就是一回事,只是高程和犀牛书关 ...

  4. iOS开发之地图与定位

    无论是QQ还是微信的移动客户端都少不了定位功能,之前在微信demo中没有添加定位功能,今天就写个定位的小demo来了解一下定位和地图的东西.地图和定位看上去是挺高大上一东西,其实用法比TableVie ...

  5. mysql default unix_timestamp(now())

    按照mssql的创建方式,去创建mysql的默认值时间戳是不能被允许的,例如下面代码: CREATE TABLE USERINFO( CREATETIME INT NOT NULL DEFAULT U ...

  6. JS只能输入数字,数字和字母等的正则表达式

    1.只能输入英文 <input type="text" onkeyup="value=value.replace(/[^a-zA-Z]/g,'')"> ...

  7. h5直播开发之旅总结

    前言 关于直播,有很多相关技术文章,这里不多说. 作为前端,我们比较关心我们所需要的. 直播的大致流程: APP端调用摄像头 -> 拍摄视频 -> 实时上传视频 -> 服务器端获取视 ...

  8. 重温Servlet学习笔记--servletContext对象

    一个项目中只有一个ServletContext对象,我们可以在多个servlet中获取这个唯一的对象,使用它可以给多个servlet传递数据,我们通常成servletContext为上下文对象.这个对 ...

  9. 软件工程 Coding.net代码托管平台 Git初学者的使用总结 五步完成 程序,文件,文件夹的Git

    一.前言 第一次用git相关的命令行,我使用的是Coding.net代码托管平台.Coding.net 自主打造的基于 Git 的代码托管平台,提供高性能的远端仓库,还有保护分支,历史版本分屏对比. ...

  10. 【集合框架】JDK1.8源码分析之Collections && Arrays(十)

    一.前言 整个集合框架的常用类我们已经分析完成了,但是还有两个工具类我们还没有进行分析.可以说,这两个工具类对于我们操作集合时相当有用,下面进行分析. 二.Collections源码分析 2.1 类的 ...