日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

netcore读取json文件_NetCore 对Json文件的读写操作

發(fā)布時(shí)間:2023/12/10 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 netcore读取json文件_NetCore 对Json文件的读写操作 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

nuget

Microsoft.Extensions.Configuration;

Microsoft.Extensions.Configuration.Json;

Newtonsoft.Json;

Newtonsoft.Json.Linq;

///

/// Json文件讀寫(xiě)

/// 引用Newtonsoft.Json

///

public class JsonFileHelper

{

//注意:section為根節(jié)點(diǎn)

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 當(dāng)*.json文件被修改時(shí)重新加載

Configuration = new ConfigurationBuilder()

.Add(new JsonConfigurationSource { Path = _path, ReloadOnChange = true, Optional = true })

.Build();

}

///

/// 讀取Json返回實(shí)體對(duì)象

///

///

public T Read() => Read("");

///

/// 根據(jù)節(jié)點(diǎn)讀取Json返回實(shí)體對(duì)象

///

///

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("");

///

/// 根據(jù)節(jié)點(diǎn)讀取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);

}

///

/// 寫(xiě)入文件

///

/// 自定義對(duì)象

///

public void Write(T t) => Write("", t);

///

/// 寫(xiě)入指定section文件

///

/// 自定義對(duì)象

///

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節(jié)點(diǎn)

///

///

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 對(duì)不同類型的數(shù)據(jù)文件的讀寫(xiě)操作整合器[JSON,XML,CSV]-[經(jīng)過(guò)設(shè)計(jì)模式改造](2020年寒假小目標(biāo)03)

日期:2020.01.16 博客期:125 星期四 我想說(shuō)想要構(gòu)造這樣一個(gè)通用文件讀寫(xiě)器確實(shí)不容易,嗯~以后會(huì)添加更多的文件類型,先來(lái)熟悉一下文件內(nèi)容樣式: <?xml version=&quo ...

Python中json的簡(jiǎn)單讀寫(xiě)操作

Python中json的簡(jiǎn)單讀寫(xiě)操作 JSON(JavaScript Object Notation) 是一種輕量級(jí)的數(shù)據(jù)交換格式.它基于ECMAScript的一個(gè)子集. JSON采用完全獨(dú)立于語(yǔ)言的 ...

INI 文件的讀寫(xiě)操作

在C#中對(duì)INI文件進(jìn)行讀寫(xiě)操作,在此要引入using System.Runtime.InteropServices; 命名空間,具體方法如下: #region 變量 private static r ...

Android 對(duì) properties文件的讀寫(xiě)操作

-. 放在res中的properties文件的讀取,例如對(duì)放在assets目錄中的setting.properties的讀取:PS:之所以這里只是有讀取操作,而沒(méi)有寫(xiě)的操作,是因?yàn)槲野l(fā)現(xiàn)不能對(duì)res下 ...

C&plus;&plus;學(xué)習(xí)48 對(duì)ASCII文件的讀寫(xiě)操作

如果文件的每一個(gè)字節(jié)中均以ASCII代碼形式存放數(shù)據(jù),即一個(gè)字節(jié)存放一個(gè)字符,這個(gè)文件就是ASCII文件(或稱字符文件).程序可以從ASCII文件中讀入若干個(gè)字符,也可以向它輸出一些字符. 對(duì)ASCI ...

Delphi- ini文件的讀寫(xiě)操作

一.讀INI文件示例 procedure TForm1.FormCreate(Sender: TObject); Var MyIni :Tinifile; glAppPath :string; beg ...

android報(bào)錯(cuò)及解決2--Sdcard進(jìn)行文件的讀寫(xiě)操作報(bào)的異常

報(bào)錯(cuò)描述: 對(duì)Sdcard進(jìn)行文件的讀寫(xiě)操作的時(shí)候,報(bào)java.io.FileNotFoundException: /sdcard/testsd.txt (Permission denied),在往S ...

java文件的讀寫(xiě)操作

java文件的讀寫(xiě)操作主要是對(duì)輸入流和輸出流的操作,由于流的分類很多,所以概念很容易模糊,基于此,對(duì)于流的讀寫(xiě)操作做一個(gè)小結(jié). 1.根據(jù)數(shù)據(jù)的流向來(lái)分: 輸出流:是用來(lái)寫(xiě)數(shù)據(jù)的,是由程序(內(nèi)存)--- ...

python使用裝飾器對(duì)文件進(jìn)行讀寫(xiě)操作&&num;39&semi;及遍歷文件目錄

'''使用裝飾器對(duì)文件進(jìn)行讀寫(xiě)操作''' # def check_permission(func): # '''演示嵌套函數(shù)定義及使用''' # def wrapper(*args,**kwargs) ...

隨機(jī)推薦

Python之路【第十六篇】Django基礎(chǔ)

Python的WEB框架有Django.Tornado.Flask 等多種,Django相較與其他WEB框架其優(yōu)勢(shì)為:大而全,框架本身集成了ORM.模型綁定.模板引擎.緩存.Session等諸多功能. ...

ext 參考資料

http://extjs.org.cn/?中文網(wǎng)站 http://www.sencha.com/?英文網(wǎng)站 http://www.qeefee.com?個(gè)人總結(jié)

POJ 1847 Tram dij

分析:d[i]表示到i點(diǎn),最少的操作數(shù) #include #include #include #include&lt ...

js中this的四種使用方法

0x00:js中this的四種調(diào)用模式 1,方法調(diào)用模式 2,函數(shù)調(diào)用模式 3,構(gòu)造器調(diào)用模式 4,apply.call.bind調(diào)用模式 0x01:第一種:方法調(diào)用模式 (也就是用.調(diào)用的)this ...

讓Terminal顯示git分支

vi ~/.bash_profile ### 顯示git分支 parse_git_branch () { git branch 2> /dev/null | sed -e '/^[^*]/d' ...

COM組件轉(zhuǎn)換為&period;NET元數(shù)據(jù)

.net開(kāi)發(fā)中,需要調(diào)用一些COM組件,COM組件的元素轉(zhuǎn)化為.net的元數(shù)據(jù)后才能很好的調(diào)用. 下面貼出我轉(zhuǎn)的過(guò)程. 首先,打開(kāi)C:\Program Files (x86)\Microsoft SD ...

本地代碼上傳到git

1.(先進(jìn)入項(xiàng)目文件夾)通過(guò)命令 git init 把這個(gè)目錄變成git可以管理的倉(cāng)庫(kù) git init 2.把文件添加到版本庫(kù)中,使用命令 git add .添加到暫存區(qū)里面去,不要忘記后面的小數(shù)點(diǎn) ...

Git入門基礎(chǔ)詳情教程

前言 寫(xiě)了一篇文章還覺(jué)得不錯(cuò),繼續(xù)寫(xiě)了,那么繼續(xù)寫(xiě)Git 基礎(chǔ)知識(shí). Git 官網(wǎng):https: ...

iOS項(xiàng)目之解析HTML數(shù)據(jù)

最近因?yàn)樾枨?一直在做HTML數(shù)據(jù)的解析,從網(wǎng)頁(yè)中去獲取需要的數(shù)據(jù),然后展示到自己的app中. 在網(wǎng)上找了很多資料,大多都是TFHpple這個(gè)第三方框架,能夠根據(jù)標(biāo)簽節(jié)點(diǎn)獲取對(duì)應(yīng)的數(shù)據(jù),但是現(xiàn)在我需要 ...

python基礎(chǔ)之函數(shù)對(duì)象,嵌套,名稱空間和作用域

函數(shù)對(duì)象: 函數(shù)是第一類對(duì)象的含義是函數(shù)可以被當(dāng)作數(shù)據(jù)處理 函數(shù)可用于: def func(): print(‘func’) 1.引用? f = func? 把內(nèi)存地址賦值給f 2.當(dāng)作參數(shù)傳給一個(gè)函 ...

總結(jié)

以上是生活随笔為你收集整理的netcore读取json文件_NetCore 对Json文件的读写操作的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。