netcore读取json文件_NetCore 对Json文件的读写操作
nuget
Microsoft.Extensions.Configuration;
Microsoft.Extensions.Configuration.Json;
Newtonsoft.Json;
Newtonsoft.Json.Linq;
///
/// Json文件读写
/// 引用Newtonsoft.Json
///
public class JsonFileHelper
{
//注意:section为根节点
private string _jsonName;
private string _path;
private IConfiguration Configuration { get; set; }
public JsonFileHelper(string jsonName)
{
_jsonName = jsonName;
if (!jsonName.EndsWith(".json"))
_path = $"{jsonName}.json";
else
_path = jsonName;
//ReloadOnChange = true 当*.json文件被修改时重新加载
Configuration = new ConfigurationBuilder()
.Add(new JsonConfigurationSource { Path = _path, ReloadOnChange = true, Optional = true })
.Build();
}
///
/// 读取Json返回实体对象
///
///
public T Read() => Read("");
///
/// 根据节点读取Json返回实体对象
///
///
public T Read(string section)
{
try
{
using (var file = new StreamReader(_path))
using (var reader = new JsonTextReader(file))
{
var jObj = (JObject)JToken.ReadFrom(reader);
if (!string.IsNullOrWhiteSpace(section))
{
var secJt = jObj[section];
if (secJt != null)
{
return JsonConvert.DeserializeObject(secJt.ToString());
}
}
else
{
return JsonConvert.DeserializeObject(jObj.ToString());
}
}
}
catch (System.Exception ex)
{
throw ex;
}
return default(T);
}
///
/// 读取Json返回集合
///
///
public List ReadList() => ReadList("");
///
/// 根据节点读取Json返回集合
///
///
public List ReadList(string section)
{
try
{
using (var file = new StreamReader(_path))
using (var reader = new JsonTextReader(file))
{
var jObj = (JObject)JToken.ReadFrom(reader);
if (!string.IsNullOrWhiteSpace(section))
{
var secJt = jObj[section];
if (secJt != null)
{
return JsonConvert.DeserializeObject>(secJt.ToString());
}
}
else
{
return JsonConvert.DeserializeObject>(jObj.ToString());
}
}
}
catch (System.Exception ex)
{
throw ex;
}
return default(List);
}
///
/// 写入文件
///
/// 自定义对象
///
public void Write(T t) => Write("", t);
///
/// 写入指定section文件
///
/// 自定义对象
///
public void Write(string section, T t)
{
try
{
JObject jObj;
using (StreamReader file = new StreamReader(_path))
using (JsonTextReader reader = new JsonTextReader(file))
{
jObj = (JObject)JToken.ReadFrom(reader);
var json = JsonConvert.SerializeObject(t);
if (string.IsNullOrWhiteSpace(section))
jObj = JObject.Parse(json);
else
jObj[section] = JObject.Parse(json);
}
using (var writer = new StreamWriter(_path))
using (var jsonWriter = new JsonTextWriter(writer))
{
jObj.WriteTo(jsonWriter);
}
}
catch (System.Exception ex)
{
throw ex;
}
}
///
/// 删除指定section节点
///
///
public void Remove(string section)
{
try
{
JObject jObj;
using (StreamReader file = new StreamReader(_path))
using (JsonTextReader reader = new JsonTextReader(file))
{
jObj = (JObject)JToken.ReadFrom(reader);
jObj.Remove(section);
}
using (var writer = new StreamWriter(_path))
using (var jsonWriter = new JsonTextWriter(writer))
{
jObj.WriteTo(jsonWriter);
}
}
catch (System.Exception ex)
{
throw ex;
}
}
}
Java 对不同类型的数据文件的读写操作整合器[JSON,XML,CSV]-[经过设计模式改造](2020年寒假小目标03)
日期:2020.01.16 博客期:125 星期四 我想说想要构造这样一个通用文件读写器确实不容易,嗯~以后会添加更多的文件类型,先来熟悉一下文件内容样式: <?xml version=&quo ...
Python中json的简单读写操作
Python中json的简单读写操作 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.它基于ECMAScript的一个子集. JSON采用完全独立于语言的 ...
INI 文件的读写操作
在C#中对INI文件进行读写操作,在此要引入using System.Runtime.InteropServices; 命名空间,具体方法如下: #region 变量 private static r ...
Android 对 properties文件的读写操作
-. 放在res中的properties文件的读取,例如对放在assets目录中的setting.properties的读取:PS:之所以这里只是有读取操作,而没有写的操作,是因为我发现不能对res下 ...
C++学习48 对ASCII文件的读写操作
如果文件的每一个字节中均以ASCII代码形式存放数据,即一个字节存放一个字符,这个文件就是ASCII文件(或称字符文件).程序可以从ASCII文件中读入若干个字符,也可以向它输出一些字符. 对ASCI ...
Delphi- ini文件的读写操作
一.读INI文件示例 procedure TForm1.FormCreate(Sender: TObject); Var MyIni :Tinifile; glAppPath :string; beg ...
android报错及解决2--Sdcard进行文件的读写操作报的异常
报错描述: 对Sdcard进行文件的读写操作的时候,报java.io.FileNotFoundException: /sdcard/testsd.txt (Permission denied),在往S ...
java文件的读写操作
java文件的读写操作主要是对输入流和输出流的操作,由于流的分类很多,所以概念很容易模糊,基于此,对于流的读写操作做一个小结. 1.根据数据的流向来分: 输出流:是用来写数据的,是由程序(内存)--- ...
python使用装饰器对文件进行读写操作&#39;及遍历文件目录
'''使用装饰器对文件进行读写操作''' # def check_permission(func): # '''演示嵌套函数定义及使用''' # def wrapper(*args,**kwargs) ...
随机推荐
Python之路【第十六篇】Django基础
Python的WEB框架有Django.Tornado.Flask 等多种,Django相较与其他WEB框架其优势为:大而全,框架本身集成了ORM.模型绑定.模板引擎.缓存.Session等诸多功能. ...
ext 参考资料
http://extjs.org.cn/ 中文网站 http://www.sencha.com/ 英文网站 http://www.qeefee.com 个人总结
POJ 1847 Tram dij
分析:d[i]表示到i点,最少的操作数 #include #include #include #include< ...
js中this的四种使用方法
0x00:js中this的四种调用模式 1,方法调用模式 2,函数调用模式 3,构造器调用模式 4,apply.call.bind调用模式 0x01:第一种:方法调用模式 (也就是用.调用的)this ...
让Terminal显示git分支
vi ~/.bash_profile ### 显示git分支 parse_git_branch () { git branch 2> /dev/null | sed -e '/^[^*]/d' ...
COM组件转换为.NET元数据
.net开发中,需要调用一些COM组件,COM组件的元素转化为.net的元数据后才能很好的调用. 下面贴出我转的过程. 首先,打开C:\Program Files (x86)\Microsoft SD ...
本地代码上传到git
1.(先进入项目文件夹)通过命令 git init 把这个目录变成git可以管理的仓库 git init 2.把文件添加到版本库中,使用命令 git add .添加到暂存区里面去,不要忘记后面的小数点 ...
Git入门基础详情教程
前言 写了一篇文章还觉得不错,继续写了,那么继续写Git 基础知识. Git 官网:https: ...
iOS项目之解析HTML数据
最近因为需求,一直在做HTML数据的解析,从网页中去获取需要的数据,然后展示到自己的app中. 在网上找了很多资料,大多都是TFHpple这个第三方框架,能够根据标签节点获取对应的数据,但是现在我需要 ...
python基础之函数对象,嵌套,名称空间和作用域
函数对象: 函数是第一类对象的含义是函数可以被当作数据处理 函数可用于: def func(): print(‘func’) 1.引用 f = func 把内存地址赋值给f 2.当作参数传给一个函 ...
netcore读取json文件_NetCore 对Json文件的读写操作相关推荐
- python创建txt文件并写入 编码-Python文本文件读写操作时的字符编码问题
说明1:文本文件的字符编码问题只存在t模式中,如:open('a.txt', mode='rt') 编码(encode): 我们输入的任何字符想要以文件(如.txt)的形式保存在计算机的硬盘上, 必须 ...
- java word 读取excel数据_在Java中实现读写操作Word、Excel等文件
Jakarta的POI项目提供了一组操纵Windows文档的Java API,如下几个类提供了操作Excel文件的方便的途径:HSSFWorkbook.HSSFSheet.HSSFRow.HSSFCe ...
- Linux学习之路4——文件IO打开、创建、读写操作
1.使用man 2 open.man 2 creat.man 2 write.man 2 read命令获取头文件 语法: int open(const char *pathname, int flag ...
- Python3之文件的读、写、修改操作
文件yesterday Somehow, it seems the love I knew was always the most destructive kind 不知为何,我经历的爱情总是最具毁灭 ...
- Java文件读写操作(c站最全!一篇就够了)
写在前面 你们好,我是小庄.很高兴能和你们一起学习Java.如果您对Java感兴趣的话可关注我的动态. 写博文是一种习惯,在这过程中能够梳理和巩固知识. Java文件读写操作 一.File类 ...
- netcore读取json文件_.net core读取json格式的配置文件
在.Net Framework中,配置文件一般采用的是XML格式的,.NET Framework提供了专门的ConfigurationManager来读取配置文件的内容,.net core中推荐使用j ...
- 安卓加载asset中的json文件_Android中读取asset路径下本地json文件
最近自己写个小demo,用到了assets文件里面的内容.猛的没想起来怎么使用.就记录下来 移动端开发中,和后台的交互方式不外乎json和xml,由于json的轻量级以及易用性,所以现在的交互协议基本 ...
- python3读写excel文件_python3 循环读取excel文件并写入json操作
文件内容: excel内容: 代码: import xlrd import json import operator def read_xlsx(filename): # 打开excel文件 data ...
- python从sqlserver提取数据_通过Python读取sqlserver数据写成json文件的总结
最近在做将sqlserver的数据迁移到redshift上面,然后再做的过程当中出现了很多问题.(通过sqlserver 读取数据,然后写成json文件然后长传到S3上面,然后通过S3copy的形式将 ...
- python循环读取excel存入列表_python3 循环读取excel文件并写入json操作
文件内容: excel内容: 代码: import xlrd import json import operator def read_xlsx(filename): # 打开excel文件 data ...
最新文章
- 【老鸟分享】Linux命令行终端提示符多种实用技巧!
- pytorch移动端,官方helloworld不同模型仍旧好用
- python3 读取文件的最后一行 非空行
- sscanf,sprintf,fscanf,fprintf 系列函数
- Oracle之垂直水平分库分表(一)
- Ubuntu16.04以root身份登入!
- LeetCode算法
- What Every Computer Programmer Should Know About Windows API, CRT, and the Standard C++ Library
- 天庭最牛系统 推荐下载_围观RecSys2020 | 推荐系统顶会说了啥?(附论文打包下载)...
- 一步一步使用标c编写跨平台图像处理库_让一个图像变成反向图像
- 【指南 】北理珠第十届C语言程序设计挑战杯
- 阿里云服务器导出方案
- 第三方支付4(前端实现支付)
- 淘宝模拟登录2解决滑动验证问题
- 什么样的公司需要IT外包?
- 调整HTML5画布中图像的大小
- 谈谈数据挖掘和机器学习
- C++中使用代码修改字体颜色
- zabbix配置步骤、操作及使用个人邮箱、企业微信、钉钉报警的配置
- 微信小程序---canvas