123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205 |
- using Alchemy.Core.Extensions;
- using Newtonsoft.Json;
- using Newtonsoft.Json.Linq;
- namespace Alchemy.Core.Services
- {
- public class JsonService
- {
- /// <summary>
- /// 尝试获取
- /// </summary>
- /// <param name="strJson"></param>
- /// <param name="strKey"></param>
- /// <returns></returns>
- public static string TryGetValue(string strJson, string strKey)
- {
- JObject? jo = strJson.FromJson<JObject>();
- string strResullt = string.Empty;
- if (jo.ContainsKey(strKey))
- strResullt = GetValue(strJson, strKey);
- return strResullt;
- }
- /// <summary>
- /// 写入JSON
- /// </summary>
- /// <param name="fi"></param>
- /// <param name="strValue"></param>
- public static void WriteJson(FileInfo fi, string strValue)
- {
- WriteJson(fi.FullName, strValue);
- }
- /// <summary>
- /// 写入JSON
- /// </summary>
- /// <param name="strJsonPath"></param>
- /// <param name="strJson"></param>
- public static void WriteJson(string strJsonPath, string strJson)
- {
- JObject? jo = strJson.FromJson<JObject>();
- string output = JsonConvert.SerializeObject(jo, Formatting.Indented);
- File.WriteAllText(strJsonPath, output);
- }
- /// <summary>
- /// 写入JSON
- /// </summary>
- /// <param name="fi"></param>
- /// <param name="strJson"></param>
- public static void WriteJsonArray(FileInfo fi, string strJson)
- {
- WriteJsonArray(fi.FullName, strJson);
- }
- /// <summary>
- /// 写入JSON
- /// </summary>
- /// <param name="strJsonPath"></param>
- /// <param name="strJson"></param>
- public static void WriteJsonArray(string strJsonPath, string strJson)
- {
- JArray? ja = strJson.FromJson<JArray>();
- string output = JsonConvert.SerializeObject(ja, Formatting.Indented);
- File.WriteAllText(strJsonPath, output);
- }
- /// <summary>
- /// 读取文件路径,写入Json内容
- /// </summary>
- /// <param name="fi"></param>
- /// <param name="strKey"></param>
- /// <param name="strValue"></param>
- public static void SetJson(FileInfo fi, string strKey, string strValue)
- {
- string strJson = File.ReadAllText(fi.FullName);
- SetJson(fi.FullName, strJson, strKey, strValue);
- }
- /// <summary>
- /// 读取文件路径,写入Json内容
- /// </summary>
- /// <param name="strJsonPath"></param>
- /// <param name="strJson"></param>
- /// <param name="strKey"></param>
- /// <param name="strValue"></param>
- public static void SetJson(string strJsonPath, string strJson, string strKey, string strValue)
- {
- JObject? jo = strJson.FromJson<JObject>();
- jo[strKey] = strValue.FromJson<JToken>();
- string output = JsonConvert.SerializeObject(jo, Formatting.Indented);
- File.WriteAllText(strJsonPath, output);
- }
- /// <summary>
- /// 读取文件路径,写入Json内容
- /// </summary>
- /// <param name="fi"></param>
- /// <param name="strKey"></param>
- /// <param name="strValue"></param>
- public static void SetValue(FileInfo fi, string strKey, string strValue)
- {
- string strJson = FileService.ReadAll(fi.FullName);
- SetValue(fi.FullName, strJson, strKey, strValue);
- }
- /// <summary>
- /// 读取文件路径,写入Json内容
- /// </summary>
- /// <param name="strJsonPath"></param>
- /// <param name="strJson"></param>
- /// <param name="strKey"></param>
- /// <param name="strValue"></param>
- public static void SetValue(string strJsonPath, string strJson, string strKey, string strValue)
- {
- JObject? jo = strJson.FromJson<JObject>();
- jo[strKey] = strValue;
- string output = JsonConvert.SerializeObject(jo, Formatting.Indented);
- FileService.WriteAll(strJsonPath, output);
- }
- /// <summary>
- /// 读取文件路径,获取Json内容
- /// </summary>
- /// <param name="strFilePath"></param>
- /// <returns></returns>
- public static string GetAllContent(string strFilePath)
- {
- return FileService.ReadAll(strFilePath);
- }
- /// <summary>
- /// 读取文件路径,获取Json内容
- /// </summary>
- /// <param name="fi"></param>
- /// <returns></returns>
- public static string GetAllContent(FileInfo fi)
- {
- return GetAllContent(fi.FullName);
- }
- /// <summary>
- /// 读取文件路径,从Json字符串的对象中获取Json字符串
- /// </summary>
- /// <param name="fi"></param>
- /// <param name="strKey"></param>
- /// <returns></returns>
- public static string GetJson(FileInfo fi, string strKey)
- {
- string strJson = FileService.ReadAll(fi.FullName);
- return GetJson(strJson, strKey);
- }
- /// <summary>
- /// 读取文件内容,从Json字符串的对象中获取Json字符串
- /// </summary>
- /// <param name="strJson"></param>
- /// <param name="strKey"></param>
- /// <returns></returns>
- public static string GetJson(string strJson, string strKey)
- {
- JObject? jo = strJson.FromJson<JObject>();
- return jo[strKey].ToJson();
- }
- /// <summary>
- /// 读取文件路径,从Json字符串的对象中获取值
- /// </summary>
- /// <param name="fi"></param>
- /// <param name="strKey"></param>
- /// <returns></returns>
- public static string GetValue(FileInfo fi, string strKey)
- {
- string strJson = FileService.ReadAll(fi.FullName);
- return GetValue(strJson, strKey);
- }
- /// <summary>
- /// 读取文件内容,从Json字符串的对象中获取值
- /// </summary>
- /// <param name="strJson"></param>
- /// <param name="strKey"></param>
- /// <returns></returns>
- public static string GetValue(string strJson, string strKey)
- {
- JObject? jo = strJson.FromJson<JObject>();
- return jo[strKey].ToString();
- }
- /// <summary>
- /// 读取文件路径,从Json字符串的数组中获取值
- /// </summary>
- /// <param name="fi"></param>
- /// <param name="index"></param>
- /// <param name="strKey"></param>
- /// <returns></returns>
- public static string GetValue(FileInfo fi, int index, string strKey)
- {
- string strJson = FileService.ReadAll(fi.FullName);
- return GetValue(strJson, index, strKey);
- }
- /// <summary>
- /// 读取文件内容,从Json字符串的数组中获取值
- /// </summary>
- /// <param name="strJson"></param>
- /// <param name="index"></param>
- /// <param name="strKey"></param>
- /// <returns></returns>
- public static string GetValue(string strJson, int index, string strKey)
- {
- JArray? ja = strJson.FromJson<JArray>();
- return ja[index][strKey].ToJson();
- }
- internal static string GetValue(object filePath_AppSettingsJson, string strKey)
- {
- throw new NotImplementedException();
- }
- }
- }
|