123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 |
- using Microsoft.AspNetCore.Http;
- using Microsoft.AspNetCore.Mvc;
- using Newtonsoft.Json;
- using System;
- using System.Collections.Generic;
- using System.IO;
- using System.Text;
- using System.Threading.Tasks;
- using TEAMModelBI.Models;
- namespace TEAMModelBI.Controllers.BITest
- {
- [Route("jsontest")]
- [ApiController]
- public class JsonTestController : ControllerBase
- {
- public JsonTestController()
- {
-
- }
- /// <summary>
- /// 获取
- /// </summary>
- /// <returns></returns>
- [HttpPost("get-sysconfig")]
- public async Task<IActionResult> GetSysConfig()
- {
- var sysCinfig = ReadJsonFileToList();
- Write(sysCinfig);
- return Ok(new { state = 200 });
- }
- /// <summary>
- /// 获取本地的json文件转成List
- /// </summary>
- /// <returns></returns>
- public static List<SysConfig> ReadJsonFileToList()
- {
- //将Json转换回列表
- var directorypath = Directory.GetCurrentDirectory();
- string strFileName = directorypath + "\\JsonFile\\SystemConfig.json";
- string jsonData = GetJsonFile(strFileName);
- Console.WriteLine(jsonData);
- //反序列化Json字符串内容为对象
- List<SysConfig> jsondata = JsonConvert.DeserializeObject<List<SysConfig>>(jsonData);
- return jsondata;
- }
- /// <summary>
- /// 获取到本地的Json文件并且解析返回对应的json字符串
- /// </summary>
- /// <param name="filepath"></param>
- /// <returns></returns>
- public static string GetJsonFile(string filepath)
- {
- string json = string.Empty;
- using (FileStream fs = new FileStream(filepath, FileMode.OpenOrCreate, System.IO.FileAccess.ReadWrite, FileShare.ReadWrite))
- {
- Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
- using (StreamReader sr = new(fs, Encoding.GetEncoding("GB2312")))
- {
- json = sr.ReadToEnd().ToString();
- }
- }
- return json;
- }
- /// <summary>
- /// 把对象写入到json文件中
- /// </summary>
- /// <param name="obj"></param>
- /// <returns></returns>
- public static void Write(List<SysConfig> jsonData)
- {
- var directorypath = Directory.GetCurrentDirectory();
- string strFileName = directorypath + "\\JsonFile\\SystemConfig.json";
- string ListJson = JsonConvert.SerializeObject(jsonData);
- System.IO.File.WriteAllText(strFileName, ListJson); //有缩进
- ////无缩进
- //Console.WriteLine(ListJson);
- //writeJsonFile(strFileName, ListJson);
- ////将序列化的json字符串内容写入Json文件,并且保存
- //void writeJsonFile(string path, string jsonConents)
- //{
- // using (FileStream fs = new FileStream(path, FileMode.OpenOrCreate, System.IO.FileAccess.ReadWrite, FileShare.ReadWrite))
- // {
- // //如果json文件中有中文数据,可能会出现乱码的现象,那么需要加上如下代码
- // Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
- // using (StreamWriter sw = new StreamWriter(fs, Encoding.GetEncoding("GB2312")))
- // {
- // sw.WriteLine(jsonConents);
- // }
- // }
- //}
- }
- }
- }
|