有些系统上面的配置可以做成config里面的appsetting。这里要求写在json文件里面。

首先 添加命名空间

  1. using Newtonsoft.Json;
  2. using System.IO;
  3. using Newtonsoft.Json.Linq;
  4. using System.Web;

下面是我json文件里面的内容 因为西门下面的序号是 变动的就写在配置文件里面也好修改

  1. {
  2. "StatisticalChart": {
  3. "": "/Common/CountReport/DefaultStatis",
  4. "": "/Common/CountReport/CustomerManagerStatis",
  5. "": "/Common/CountReport/FirstExamineStatis",
  6. "": "/Common/CountReport/QualityCheckStatis",
  7. "": "/Common/CountReport/ElectricFinalCheckStatis",
  8. "": "/Common/CountReport/ExecutiveDirectorStatis"
  9. },
  10. "NameGetCode":{
  11. "Default": "",
  12. "CustomerManager": "",
  13. "FirstExamine": "",
  14. "QualityCheck": "",
  15. "ElectricFinalCheck": "",
  16. "ExecutiveDirector": ""
  17. }
  18. }

下面是读取StatisticalChart节点里面的内容 power权限参数 用户登录之后获得。

  1. /// <summary>
  2. /// 通过角色读取配置文件返回地址
  3. /// </summary>
  4. /// <param name="power">权限编号</param>
  5. /// <returns></returns>
  6. public static string GetUrlByPower(string power)
  7. {
  8. string url = "";
  9. try
  10. {
  11. //文件路径
  12. string jsonfile = HttpContext.Current.Server.MapPath($"\\App_Data\\config\\StatisticalChartConfig.json");
  13. //打开文件
  14. System.IO.StreamReader file = System.IO.File.OpenText(jsonfile);
  15. //加载问卷
  16. JsonTextReader reader = new JsonTextReader(file);
  17. //转化为JObject
  18. JObject ojb = (JObject)JToken.ReadFrom(reader);
  19. //读取StatisticalChart节点
  20. var list = ojb["StatisticalChart"].ToString();
  21. JObject jo = (JObject)JsonConvert.DeserializeObject(list);
  22. var dat = jo[power];
  23. if (dat == null)
  24. url = "";
  25. else
  26. url = dat.ToString();
  27. }
  28. catch (Exception e)
  29. {
  30. url = "";
  31. throw new Exception($"初始化JSON流程配置失败:{e.Message}");
  32. }
  33. return url;
  34. }

另外一种 中国省市县的json文件

读取的方法(我是通过身份证号码获取信息用到的)

  1. //读取json文件获取代码对应的省市县
  2. string jsonfile =HttpContext.Current.Server.MapPath($"\\App_Data\\Config\\AreasData.json");
  3. StreamReader file = File.OpenText(jsonfile);
  4. JsonTextReader reader = new JsonTextReader(file);
  5. var obj = JToken.ReadFrom(reader).ToList();
  6. for (int i = ; i < obj.Count; i++)
  7. {
  8. JObject jo = (JObject)JsonConvert.DeserializeObject(obj[i].ToString());
  9. if (jo["zoneCode"].ToString() == AreasCodess)
  10. {
  11. var Data = new AreasCode()
  12. {
  13. Province = jo["province"].ToString(),
  14. ProvinceCode = jo["provinceCode"].ToString(),
  15. City = jo["city"].ToString(),
  16. CityCode = jo["cityCode"].ToString(),
  17. Country = jo["zone"].ToString(),
  18. CountryCode = jo["zoneCode"].ToString()
  19. };
  20. list.Add(Data);
  21. break;
  22. }
  23.  
  24. }

AreasCode是个实体类 接收参数的Model,AreasCodess是区域代码。读取json文件代码就这些 全面几步都是一样的 后面要看具体的json文件格式,就跟Ajax一样 返回来数据类型 是后台决定的你才好解析!

获取身份证信息也贴上吧,后面用到又来拿

  1. /// <summary>
  2. /// 获取身份证信息
  3. /// </summary>
  4. /// <param name="identityCard">身份证号码</param>
  5. /// <param name="ageIsTrue">显示年龄是否是真实大小(当前年份减去出生年份 月份 日期都要计算)</param>
  6. /// <returns>List->IDCard模型</returns>
  7. public static List<IDCard> GetIDCardInfo(string identityCard, bool ageIsTrue = true)
  8. {
  9.  
  10. if (string.IsNullOrEmpty(identityCard))//为空返回null
  11. return null;
  12. else
  13. {
  14. if (identityCard.Length != && identityCard.Length != )//身份证号码只能为15位或18位其它不合法
  15. return null;
  16. }
  17. List<IDCard> dCards = new List<IDCard>();
  18. IDCard card = new IDCard();
  19. string strSex = string.Empty;
  20. //530326 1994 1201 2521
  21. if (identityCard.Length == )//处理18位的身份证号码从号码中得到生日和性别代码
  22. {
  23. //出身年月日
  24. card.Birthday = identityCard.Substring(, ) + "-" + identityCard.Substring(, ) + "-" + identityCard.Substring(, );
  25. strSex = identityCard.Substring(, );//
  26. }
  27. //530323 670401 001的含义; 530为云南,03为曲靖 ,23是师宗,出生日期为1967年4月1日,顺序号为001。
  28. if (identityCard.Length == )
  29. {
  30. card.Birthday = "" + identityCard.Substring(, ) + "-" + identityCard.Substring(, ) + "-" + identityCard.Substring(, );
  31. //性别代码
  32. strSex = identityCard.Substring(, );
  33. }
  34.  
  35. card.Age = CalculateAge(card.Birthday, ageIsTrue);//根据生日计算年龄
  36. if (int.Parse(strSex) % == )//性别代码为偶数是女性奇数为男性
  37. card.Sex = "女";
  38. else
  39. card.Sex = "男";
  40. string AreasCodess = identityCard.Substring(, );
  41. List<AreasCode> list = new List<AreasCode>();
  42. try
  43. {
  44. //读取json文件获取代码对应的省市县
  45. string jsonfile =HttpContext.Current.Server.MapPath($"\\App_Data\\Config\\AreasData.json");
  46. StreamReader file = File.OpenText(jsonfile);
  47. JsonTextReader reader = new JsonTextReader(file);
  48. var obj = JToken.ReadFrom(reader).ToList();
  49. for (int i = ; i < obj.Count; i++)
  50. {
  51. JObject jo = (JObject)JsonConvert.DeserializeObject(obj[i].ToString());
  52. if (jo["zoneCode"].ToString() == AreasCodess)
  53. {
  54. var Data = new AreasCode()
  55. {
  56. Province = jo["province"].ToString(),
  57. ProvinceCode = jo["provinceCode"].ToString(),
  58. City = jo["city"].ToString(),
  59. CityCode = jo["cityCode"].ToString(),
  60. Country = jo["zone"].ToString(),
  61. CountryCode = jo["zoneCode"].ToString()
  62. };
  63. list.Add(Data);
  64. break;
  65. }
  66.  
  67. }
  68. if (list.Count > )
  69. {
  70. card.Province = list[].Province;
  71. card.ProvinceCode = list[].ProvinceCode;
  72. card.City = list[].City;
  73. card.CityCode = list[].CityCode;
  74. card.Country = list[].Country;
  75. card.AreasCode = list[].CountryCode;
  76. card.AddressAreas = list[].Province + list[].City + list[].Country;
  77. }
  78. dCards.Add(card);
  79. return dCards;
  80. }
  81. catch (Exception xx)
  82. {
  83. dCards[].Msg = xx.Message;
  84. return dCards;
  85. }
  86. }
  87.  
  88. /// <summary>
  89. /// 身份证信息实体类
  90. /// </summary>
  91. public class IDCard
  92. {
  93. /// <summary>
  94. /// 年龄
  95. /// </summary>
  96. public int Age { get; set; }
  97. /// <summary>
  98. /// 性别
  99. /// </summary>
  100. public string Sex { get; set; }
  101. /// <summary>
  102. /// 生日
  103. /// </summary>
  104. public string Birthday { get; set; }
  105. /// <summary>
  106. /// 省份
  107. /// </summary>
  108. public string Province { get; set; }
  109. /// <summary>
  110. /// 市区
  111. /// </summary>
  112. public string City { get; set; }
  113. /// <summary>
  114. /// 县城
  115. /// </summary>
  116. public string Country { get; set; }
  117. /// <summary>
  118. /// 身份证所在区域(省市县)
  119. /// </summary>
  120. public string AddressAreas { get; set; }
  121. /// <summary>
  122. /// 区域代码
  123. /// </summary>
  124. public string AreasCode { get; set; }
  125. /// <summary>
  126. /// 省代码
  127. /// </summary>
  128. public string ProvinceCode { get; set; }
  129. /// <summary>
  130. /// 县/区代码
  131. /// </summary>
  132. public string CityCode { get; set; }
  133. /// <summary>
  134. /// 信息
  135. /// </summary>
  136. public string Msg { get; set; }
  137. /// <summary>
  138. /// 状态
  139. /// </summary>
  140. public string Status { get; set; }
  141.  
  142. }
  143.  
  144. /// <summary>
  145. /// 实体类(省市县跟代码)身份证前6位数字
  146. /// </summary>
  147. public class AreasCode
  148. {
  149. /// <summary>
  150. /// 省份
  151. /// </summary>
  152. public string Province { get; set; }
  153. /// <summary>
  154. /// 省份代码
  155. /// </summary>
  156. public string ProvinceCode { get; set; }
  157. /// <summary>
  158. /// 市
  159. /// </summary>
  160. public string City { get; set; }
  161. /// <summary>
  162. /// 市/区 代码
  163. /// </summary>
  164. public string CityCode { get; set; }
  165. /// <summary>
  166. /// 县
  167. /// </summary>
  168. public string Country { get; set; }
  169. /// <summary>
  170. /// 县代码
  171. /// </summary>
  172. public string CountryCode { get; set; }
  173. }
  174.  
  175. /// <summary>
  176. /// 根据出生日期,计算精确的年龄
  177. /// </summary>
  178. /// <param name="birthDate">生日</param>
  179. /// <returns>年龄</returns>
  180. public static int CalculateAge(string birthDay, bool ageIs = true)
  181. {
  182. DateTime birthDate = DateTime.Parse(birthDay);
  183. DateTime nowDateTime = DateTime.Now;
  184. int age = nowDateTime.Year - birthDate.Year;
  185. //再考虑月、天的因素
  186. if (ageIs)
  187. {
  188. if (nowDateTime.Month < birthDate.Month || (nowDateTime.Month == birthDate.Month && nowDateTime.Day < birthDate.Day))
  189. {
  190. age--;
  191. }
  192. }
  193. return age;
  194. }

Asp.Net MVC 读取json文件的更多相关文章

  1. [代码示例]用Fine Uploader+ASP.NET MVC实现ajax文件上传

    原文 [代码示例]用Fine Uploader+ASP.NET MVC实现ajax文件上传 Fine Uploader(http://fineuploader.com/)是一个实现 ajax 上传文件 ...

  2. ASP.NET Core appsettings.json 文件

    ASP.NET Core appsettings.json 文件 在本节中,我们将讨论 ASP.NET Core 项目中appsettings.json文件的重要性. 在以前的 ASP.NET 版本中 ...

  3. jquery无法读取json文件问题

    jquery无法读取json文件,如:user.json文件无法读取.把user.json文件的后缀名修改为aspx,文件内容不变,则可以读取~ 原理不懂!~~

  4. Unity 用C#脚本读取JSON文件数据

    读取JSON文件数据网上有很多方法吗,这里采用SimpleJSON,关于SimpleJSON的介绍参考以下链接:http://wiki.unity3d.com/index.php/SimpleJSON ...

  5. cocos2d-x 读取 json 文件并用 jsoncpp 做解析

    一码胜万言(请看注释) CclUtil.h // // CclUtil.h // PracticeDemo // // Created by kodeyang on 8/1/13. // // #if ...

  6. jQuery读取json文件,实现省市区/县(国标)三级联动

    最近做一个微信项目,需要用户填写所在的省市区/县,决定使用jQuery读取json文件来实现省市区/县的联动. 其实很简单,jQuery文档也有详细解释: 代码如下: html <table w ...

  7. jqery ajax读取json文件

    json文件数据 [ {"name":"哈哈··","email":"邮箱01","gender": ...

  8. spring注解读取json文件

    开发时候在接口没有提供的时候,可以用json文件提前模拟接口数据 1.service层 package com.syp.spring.service; import java.io.File; imp ...

  9. Android - 读取JSON文件数据

    Android读取JSON文件数据 JSON - JavaScript Object Notation 是一种存储和交换文本信息的语法. JSON对象在花括号中书写.用逗号来分隔值. JSON数组在方 ...

随机推荐

  1. 1 eclipse 离线安装activiti插件

    第一步:下载需要的离线activiti文件: 链接:https://pan.baidu.com/s/1-_XjIsuZfhiEZn6iLul6-Q  密码:mfyk  (这是其他网友的链接) 第二步: ...

  2. 权限系统设计-day02

    练习中的问题: 1,<s:url action="employee_input" />这个标签用来让struts自动生成请求的路径,struts生成的路径是一个全路径, ...

  3. python 外键用法 多对多关系 ORM操作 模板相关

    一.app/models中写类(设计表结构) 1.普通类 class  A(models.Model): id=modles.AutoField(primary_key=True) name=mode ...

  4. victory-native的使用

    Victory用于构建交互数据可视化的可组合React组件的生态系统 想写又不想写,真尴尬...

  5. Android 音视频开发(三):使用 AudioTrack 播放PCM音频

    一.AudioTrack 基本使用 AudioTrack 类可以完成Android平台上音频数据的输出任务.AudioTrack有两种数据加载模式(MODE_STREAM和MODE_STATIC),对 ...

  6. [Swift]LeetCode11. 盛最多水的容器 | Container With Most Water

    Given n non-negative integers a1, a2, ..., an , where each represents a point at coordinate (i, ai). ...

  7. [Swift]LeetCode31. 下一个排列 | Next Permutation

    Implement next permutation, which rearranges numbers into the lexicographically next greater permuta ...

  8. [Swift]LeetCode209. 长度最小的子数组 | Minimum Size Subarray Sum

    Given an array of n positive integers and a positive integer s, find the minimal length of a contigu ...

  9. [Swift]LeetCode274.H指数 | H-Index

    Given an array of citations (each citation is a non-negative integer) of a researcher, write a funct ...

  10. [Swift]LeetCode498. 对角线遍历 | Diagonal Traverse

    Given a matrix of M x N elements (M rows, N columns), return all elements of the matrix in diagonal ...