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

首先 添加命名空间

using Newtonsoft.Json;
using System.IO;
using Newtonsoft.Json.Linq;
using System.Web;

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

{
"StatisticalChart": {
"": "/Common/CountReport/DefaultStatis",
"": "/Common/CountReport/CustomerManagerStatis",
"": "/Common/CountReport/FirstExamineStatis",
"": "/Common/CountReport/QualityCheckStatis",
"": "/Common/CountReport/ElectricFinalCheckStatis",
"": "/Common/CountReport/ExecutiveDirectorStatis"
},
"NameGetCode":{
"Default": "",
"CustomerManager": "",
"FirstExamine": "",
"QualityCheck": "",
"ElectricFinalCheck": "",
"ExecutiveDirector": ""
}
}

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

/// <summary>
/// 通过角色读取配置文件返回地址
/// </summary>
/// <param name="power">权限编号</param>
/// <returns></returns>
public static string GetUrlByPower(string power)
{
string url = "";
try
{
//文件路径
string jsonfile = HttpContext.Current.Server.MapPath($"\\App_Data\\config\\StatisticalChartConfig.json");
//打开文件
System.IO.StreamReader file = System.IO.File.OpenText(jsonfile);
//加载问卷
JsonTextReader reader = new JsonTextReader(file);
//转化为JObject
JObject ojb = (JObject)JToken.ReadFrom(reader);
//读取StatisticalChart节点
var list = ojb["StatisticalChart"].ToString();
JObject jo = (JObject)JsonConvert.DeserializeObject(list);
var dat = jo[power];
if (dat == null)
url = "";
else
url = dat.ToString();
}
catch (Exception e)
{
url = "";
throw new Exception($"初始化JSON流程配置失败:{e.Message}");
}
return url;
}

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

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

 //读取json文件获取代码对应的省市县
string jsonfile =HttpContext.Current.Server.MapPath($"\\App_Data\\Config\\AreasData.json");
StreamReader file = File.OpenText(jsonfile);
JsonTextReader reader = new JsonTextReader(file);
var obj = JToken.ReadFrom(reader).ToList();
for (int i = ; i < obj.Count; i++)
{
JObject jo = (JObject)JsonConvert.DeserializeObject(obj[i].ToString());
if (jo["zoneCode"].ToString() == AreasCodess)
{
var Data = new AreasCode()
{
Province = jo["province"].ToString(),
ProvinceCode = jo["provinceCode"].ToString(),
City = jo["city"].ToString(),
CityCode = jo["cityCode"].ToString(),
Country = jo["zone"].ToString(),
CountryCode = jo["zoneCode"].ToString()
};
list.Add(Data);
break;
} }

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

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

/// <summary>
/// 获取身份证信息
/// </summary>
/// <param name="identityCard">身份证号码</param>
/// <param name="ageIsTrue">显示年龄是否是真实大小(当前年份减去出生年份 月份 日期都要计算)</param>
/// <returns>List->IDCard模型</returns>
public static List<IDCard> GetIDCardInfo(string identityCard, bool ageIsTrue = true)
{ if (string.IsNullOrEmpty(identityCard))//为空返回null
return null;
else
{
if (identityCard.Length != && identityCard.Length != )//身份证号码只能为15位或18位其它不合法
return null;
}
List<IDCard> dCards = new List<IDCard>();
IDCard card = new IDCard();
string strSex = string.Empty;
//530326 1994 1201 2521
if (identityCard.Length == )//处理18位的身份证号码从号码中得到生日和性别代码
{
//出身年月日
card.Birthday = identityCard.Substring(, ) + "-" + identityCard.Substring(, ) + "-" + identityCard.Substring(, );
strSex = identityCard.Substring(, );//
}
//530323 670401 001的含义; 530为云南,03为曲靖 ,23是师宗,出生日期为1967年4月1日,顺序号为001。
if (identityCard.Length == )
{
card.Birthday = "" + identityCard.Substring(, ) + "-" + identityCard.Substring(, ) + "-" + identityCard.Substring(, );
//性别代码
strSex = identityCard.Substring(, );
} card.Age = CalculateAge(card.Birthday, ageIsTrue);//根据生日计算年龄
if (int.Parse(strSex) % == )//性别代码为偶数是女性奇数为男性
card.Sex = "女";
else
card.Sex = "男";
string AreasCodess = identityCard.Substring(, );
List<AreasCode> list = new List<AreasCode>();
try
{
//读取json文件获取代码对应的省市县
string jsonfile =HttpContext.Current.Server.MapPath($"\\App_Data\\Config\\AreasData.json");
StreamReader file = File.OpenText(jsonfile);
JsonTextReader reader = new JsonTextReader(file);
var obj = JToken.ReadFrom(reader).ToList();
for (int i = ; i < obj.Count; i++)
{
JObject jo = (JObject)JsonConvert.DeserializeObject(obj[i].ToString());
if (jo["zoneCode"].ToString() == AreasCodess)
{
var Data = new AreasCode()
{
Province = jo["province"].ToString(),
ProvinceCode = jo["provinceCode"].ToString(),
City = jo["city"].ToString(),
CityCode = jo["cityCode"].ToString(),
Country = jo["zone"].ToString(),
CountryCode = jo["zoneCode"].ToString()
};
list.Add(Data);
break;
} }
if (list.Count > )
{
card.Province = list[].Province;
card.ProvinceCode = list[].ProvinceCode;
card.City = list[].City;
card.CityCode = list[].CityCode;
card.Country = list[].Country;
card.AreasCode = list[].CountryCode;
card.AddressAreas = list[].Province + list[].City + list[].Country;
}
dCards.Add(card);
return dCards;
}
catch (Exception xx)
{
dCards[].Msg = xx.Message;
return dCards;
}
} /// <summary>
/// 身份证信息实体类
/// </summary>
public class IDCard
{
/// <summary>
/// 年龄
/// </summary>
public int Age { get; set; }
/// <summary>
/// 性别
/// </summary>
public string Sex { get; set; }
/// <summary>
/// 生日
/// </summary>
public string Birthday { get; set; }
/// <summary>
/// 省份
/// </summary>
public string Province { get; set; }
/// <summary>
/// 市区
/// </summary>
public string City { get; set; }
/// <summary>
/// 县城
/// </summary>
public string Country { get; set; }
/// <summary>
/// 身份证所在区域(省市县)
/// </summary>
public string AddressAreas { get; set; }
/// <summary>
/// 区域代码
/// </summary>
public string AreasCode { get; set; }
/// <summary>
/// 省代码
/// </summary>
public string ProvinceCode { get; set; }
/// <summary>
/// 县/区代码
/// </summary>
public string CityCode { get; set; }
/// <summary>
/// 信息
/// </summary>
public string Msg { get; set; }
/// <summary>
/// 状态
/// </summary>
public string Status { get; set; } } /// <summary>
/// 实体类(省市县跟代码)身份证前6位数字
/// </summary>
public class AreasCode
{
/// <summary>
/// 省份
/// </summary>
public string Province { get; set; }
/// <summary>
/// 省份代码
/// </summary>
public string ProvinceCode { get; set; }
/// <summary>
/// 市
/// </summary>
public string City { get; set; }
/// <summary>
/// 市/区 代码
/// </summary>
public string CityCode { get; set; }
/// <summary>
/// 县
/// </summary>
public string Country { get; set; }
/// <summary>
/// 县代码
/// </summary>
public string CountryCode { get; set; }
} /// <summary>
/// 根据出生日期,计算精确的年龄
/// </summary>
/// <param name="birthDate">生日</param>
/// <returns>年龄</returns>
public static int CalculateAge(string birthDay, bool ageIs = true)
{
DateTime birthDate = DateTime.Parse(birthDay);
DateTime nowDateTime = DateTime.Now;
int age = nowDateTime.Year - birthDate.Year;
//再考虑月、天的因素
if (ageIs)
{
if (nowDateTime.Month < birthDate.Month || (nowDateTime.Month == birthDate.Month && nowDateTime.Day < birthDate.Day))
{
age--;
}
}
return age;
}

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. 3-1.Hadoop单机模式安装

    Hadoop单机模式安装 一.实验介绍 1.1 实验内容 hadoop三种安装模式介绍 hadoop单机模式安装 测试安装 1.2 实验知识点 下载解压/环境变量配置 Linux/shell 测试Wo ...

  2. 对JS闭包和函数作用域的问题的深入讨论,如何理解JS闭包和函数作用域链?

    首先先引用<JavaScript权威指南>里面的一句话来开始我的博客:函数的执行依赖于变量作用域,这个作用域是在函数定义时决定的,而不是函数调用时决定的. 因此,就出现了如下的几串代码: ...

  3. 对某菠菜网站的一次渗透测试 heatlevel

    前言 无意间发现一个thinkphp的菠菜站,最近tp不是刚好有个漏洞吗?然后就顺手测试了一下,但过程并不太顺利,不过最后还是拿下了,所以特发此文分享下思路. 0x00 一键getshell? 简单看 ...

  4. 分布式服务框架介绍:最成熟的开源NIO框架Netty

    尽管JDK提供了丰富的NIO类库,网上也有很多NIO学习例程,但是直接使用Java NIO类库想要开发出稳定可靠的通信框架却并非易事,原因如下: 1)NIO的类库和API繁杂,使用麻烦,你需要熟练掌握 ...

  5. [Swift]LeetCode978. 最长湍流子数组 | Longest Turbulent Subarray

    A subarray A[i], A[i+1], ..., A[j] of A is said to be turbulent if and only if: For i <= k < j ...

  6. 十分钟通过 NPM 创建一个命令行工具

    大过年的,要不要写点代码压压惊?来花十分钟学一下怎么通过 NPM 构建一个命令行工具. 写了一个小 demo,用于代替 touch 的创建文件命令 touchme ,可以创建自带“佛祖保佑”注释的文件 ...

  7. 跳槽 & 思维导图

    个人博客原文: 跳槽 & 思维导图 今年的冬天有点"冷".给大家来点实在的东西. 不知道大家在跳槽的时候是怎么做的?直接投简历面试?还是准备了一段时间,复习一波知识点后再投 ...

  8. asp.net core系列 32 EF查询数据 必备知识(1)

    一.查询的工作原理 Entity Framework Core 使用语言集成查询 (LINQ) 来查询数据库中的数据. 通过 LINQ 可使用 C#(或你选择的其他 .NET 语言)基于派生上下文和实 ...

  9. asp.net core 系列 7 Razor框架路由(上)

    一.概述 在上二篇中,主要是介绍了asp.net core mvc中路由的使用,这篇继续介绍路由在ASP.NET Core Razor中的使用.Razor Pages应该使用默认的传统路由,从应用程序 ...

  10. nginx~linux下的部署

    一些概念     Nginx ("engine x") 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器.Nginx是由Igor Sysoev为俄 ...